1、网关主机设置
服务器上有两块网卡,eth0使用*.*.*.*IP地址连接Internet,eth1连接LAN,则其/etc/network/interfaces的设置如下:
以下为引用的内容: |
2、IP伪装(IP-masquerade)
这时将lan内主机网关改为192.168.0.1,应该能ping通该网关,但是还是连不上internet。要实现LAN内的机器通过共享一个单独的可访问外网的IP地址来访问Internet资源,还需要在网关上安装ipmasq。
以下为引用的内容: $ sudo apt-get install ipmasq |
会提示进行一些设置,都默认即可。之后lan内主机应该就能连上internet了。
3、端口映射
假设lan内有一ftp192.168.0.2,要从internet上访问该ftp,需要在网关主机上进行一定的端口映射。可使用iptables完成。下面是具体实现的脚本例子:
以下为引用的内容: #!/bin/sh /sbin/modprobe iptable_filter /sbin/modprobe ip_tables /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp iptables -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F -t nat iptables -t nat -A PREROUTING -p tcp -i eth0 -d 202.120.2.101 --dport 21 -j DNAT --to 192.168.123.6:21 iptables -t nat -A PREROUTING -p tcp -i eth0 -d 202.120.2.101 --dport 2345 -j DNAT --to 192.168.123.116:3389 iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -o eth0 -j SNAT --to 202.120.16.34 echo 1 > /proc/sys/net/ipv4/ip_forward |