让只连了内网某台机器A的机器B能上外网
外网 ---| 192.168.2.2 |
| Server A |
| 192.168.1.2 |---| 192.168.1.1 |
| Server B |
服务器A的设置
服务器A
- 一个网卡 eno1 连接路由器能够上外网,此处ip 192.168.2.2
- 一个网卡 eno2 连接服务器B,此处ip 192.168.1.2
服务器A的网卡配置 /etc/network/interfaces
auto eno1
iface eno1 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
auto eno2
iface eno2 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
网络重启生效/etc/init.d/networking restart
配置 iptables 让服务器A做路由实现分享上网,参考https://blog.csdn.net/u010035474/article/details/38438001
iptables -A FORWARD -i eno2 -j ACCEPT #这两个命令的目的是允许所有的包通过 eno2
iptables -A FORWARD -o eno2 -j ACCEPT
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE # #这条命令主要意思就是使用IP伪装也就是NAT把来自 eno1 后面的包里的地址伪装成 eno1 的地址
如果要保证重启后依然能用,以上三条iptables命令需要设置开机启动。
服务器B的设置
服务器B的网卡 ma1 连接服务器A的网卡eno2,ma1处的ip 192.168.1.1
服务器B的网卡配置 /etc/network/interfaces
auto ma1
iface ma1 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.2
dns-nameservers 8.8.8.8
网络重启生效/etc/init.d/networking restart
其路由
root@localhost:~/# ip route
default via 192.168.1.2 dev ma1
192.168.1.0/24 dev ma1 proto kernel scope link src 192.168.1.1