1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > linux实现nat转发和内部端口映射

linux实现nat转发和内部端口映射

时间:2021-12-24 05:31:08

相关推荐

linux实现nat转发和内部端口映射

路由机

eth0:114.114.114.114(公网ip)eth1:192.168.1.1(内网ip)

pc1

eth0:192.168.1.2(内网ip)eth1(拨号ip)

pc2

eth0:192.168.1.3(内网ip)eth1(拨号ip)

1.配置路由机网卡信息

vim /etc/sysconfig/network-scripts/ifcfg-eth1

TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noNAME=eth1UUID=85290fec-9166-4a02-90c3-711bf55d1ae2DEVICE=eth1ONBOOT=yesHWADDR=00:0c:29:27:64:b8IPADDR=192.168.1.1

此网卡只配置IP,不配置网关

2.配置pc1网卡

vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noNAME=eth0UUID=d79660a0-4225-4f0e-96b1-4d61fc05a17cDEVICE=eth0ONBOOT=yesHWADDR=00:0c:29:97:6a:4bIPADDR=192.168.1.2NETMASK=255.255.255.0GATEWAY=192.168.1.1

pc2配置与pc1类似,保证2台pc机与网关能互相ping通

此时pc1 pc2还不能访问外网,需要路由机做iptables规则

1.查看机器的转发功能时候打开

cat /proc/sys/net/ipv4/ip_forward

若返回1则表示已经打开

返回0则:

echo "1" > /proc/sys/net/ipv4/ip_forward

此规则及时生效,但重启后就失效了,需要在配置文件里添加

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536#每个消息队列的最大字节限制kernel.msgmax = 65536#每个消息的最大sizekernel.shmmax = 68719476736#内核参数定义单个共享内存段的最大值kernel.shmall = 4294967296#控制共享内存页数

iptables做nat转发规则

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 114.114.114.114

将192.168.1.0网段转发至路由机的公网IP(静态)

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

将所有网段转发至路由机公网ip(动态)

现在2台pc机就能访问外网了,如果不能访问则检查下dns配置

内部端口映射

iptables -t nat -A PREROUTING -d 114.114.114.114/32 -p tcp -m tcp --dport 26688 -j DNAT --to-destination 192.168.1.2:22

把192.168.1.2的22端口映射到外部26688端口

找台外网机器访问下114.114.114.114的26688端口,就可以直接进入pc1

删除规则:把-A改为-D

iptables -t nat -D PREROUTING -d 114.114.114.114/32 -p tcp -m tcp --dport 26688 -j DNAT --to-destination 192.168.1.2:22

映射失效

最后保存下iptables配置

/usr/sbin/iptables-save

但是当pc1拨号时也会导致端口映射失效,类似双网卡默认对外路由的问题,通过路由机访问的IP会默认走拨号端口,需要做下ip伪装,将通过访问内网的公网地址伪装成网关地址从而实现内网通信

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。