环境:三台内网IP为172.16.1.0/24段的主机B,C,D
一台A主机有双网卡,eth0配有可以上外网的IP 192.168.1.102,eth1配有跟B,C,D同一段内网的IP 172.16.1.102,不用配网关
问题:如何让三台内网主机可以通过A主机来访问外网
设置方法如下:
1.将B,C,D的三台主机的网关配置为A的内网卡地址,也就是172.16.1.102,DNS要配置,不然不能上网
2.在A主机上开启路由转发,永久设置如下
编辑/etc/sysctl.conf
把net.ipv4.ip_forward = 0 改为1
sysctl -p 生效
3.再在A主机上执行(iptables没有开启的情况下)
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 192.168.1.102
如果开启了iptables
可以打开下面默认或者停止iptables
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
局域网共享的两条命令方法:
方法1:适合于有固定外网地址的:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7
(1)-s 192.168.1.0/24 办公室或IDC内网网段。
(2)-o eth0 为网关的外网卡接口。
(3)-j SNAT --to-source 10.0.0.19 是网关外网卡IP地址(相当于路由器ip地址)。
方法2:适合变化外网地址(ADSL):
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
实现NAT功能,如:由外部IP映射到内部服务器IP(包括端口),使用nat表。
iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000