一内网上网

环境说明:

主机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