一内网上网
环境说明:
主机A:
1.宿主上网机器
eth0:10.0.0.8 #作为外网地址eth1:172.16.1.8 #内网地址
外网网卡信息:
[root@web01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=noneIPADDR=10.0.0.8NETMASK=255.255.255.0DNS2=10.0.0.2GATEWAY=10.0.0.2DNS1=223.5.5.5IPV6INIT=noUSERCTL=no[root@web01 ~]#内网卡的信息:[root@web01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=noneNETMASK=255.255.255.0TYPE=EthernetIPADDR=172.16.1.8ONBOOT=yesIPV6INIT=noUSERCTL=no[root@web01 ~]#
主机B:
需要上网的机器:没有外网:内网IP:172.16.1.31 #这个随意[root@nfs01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=noneNETMASK=255.255.255.0TYPE=EthernetIPADDR=172.16.1.31ONBOOT=yesIPV6INIT=noUSERCTL=no[root@nfs01 ~]#
具体的配置:
主机A:防火强关闭:/etc/init.d/iptables stop #关闭防火墙echo 1 >/proc/sys/net/ipv4/ip_forward #开启内核转发iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.8 #匹配规则主机B:echo "223.5.5.5">>/etc/resolv.conf #阿里的DNS比较快一些route add default gw 172.16.1.8
两种配置的方式:
1.适合固定外网的IPiptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.8 #匹配规则2.适合ADSl拨号的IPiptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE 伪装
二内网web映射让外网访问
A:服务器
内网服务器:172.16.1.31[root@nfs01 html]# pwd/usr/share/nginx/html[root@nfs01 html]# lsof -i:80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnginx 2382 root 6u IPv4 32087 0t0 TCP *:http (LISTEN)nginx 2384 nginx 6u IPv4 32087 0t0 TCP *:http (LISTEN)[root@nfs01 html]#[root@nfs01 html]# curl 172.16.1.31web 172.16.1.31
B:服务器
外网:10.0.0.8内网:172.16.1.31 iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.31:80