在第二台服务器中使用一台服务器的互联网连接

在第二台服务器中使用一台服务器的互联网连接

我有两台运行 Ubuntu 14.04.3 LTS 的服务器,并且都配置了两个网络接口,/etc/network/interfaces因为我不使用 NetworkManager

服务器 1 通过网络接口 1 连接到互联网,而网络接口 2 用于连接到服务器 2。我可以这样做SSH从 Server1 到 Server2 没有任何问题。但是,Server2 未连接到互联网。

我如何与 Server2/interface2 共享 Server1/interface1 的互联网连接?

/etc/network/interfaces如下所示;

# The loopback network interface
auto lo
iface lo inet loopback
auto em1
allow-hotplug em1

iface em1 inet static
address 192.168.1.70
netmask 255.255.255.0
gateway 192.168.1.1

auto em2
allow-hotplug em2
iface em2 inet static
address 192.168.2.72
netmask 255.255.255.0

编辑 回应评论:“internet”->srv1/int1 srv1/int2 <->srv2/int2

其中“internet”是连接到另一个房间的路由器的单个以太网插座。我打算买一个路由器,但目前我需要一个临时解决方案来将 srv2 连接到互联网(以允许安装/更新软件包)。

答案1

设置服务器1

配置 iptables 进行 NAT 转换,以便数据包能够正确地通过 Server1 路由:

sudo iptables -A FORWARD -o em1 -i em2 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT   
sudo iptables -t nat -F POSTROUTING    
sudo iptables -t nat -A POSTROUTING -o em1 -j MASQUERADE

保存新添加的iptables规则:

sudo iptables-save | sudo tee /etc/iptables.sav

"exit 0"并在in之前添加以下行/etc/rc.local

iptables-restore < /etc/iptables.sav

通过启用 IP 转发配置 Server1 以在两个接口之间进行路由:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

打开/etc/sysctl.conf并取消注释:

net.ipv4.ip_forward=1

设置 Server2

em1 是 Server2 上的网卡,通过交叉线连接到 Server1 上的 em2。Server2 中的 em1 可以设置任意 IP 地址,只要与 Server1 中 em2 的子网(192.168.2.0/24)匹配即可,例如:192.168.2.100

停止社交

sudo /etc/init.d/networking stop

为 em1 添加默认网关/etc/network/interfaces

auto em1
iface em1 inet static
address 192.168.2.100
netmask 255.255.255.0
gateway 192.168.2.72

该地址应该与 Server1 中 em2 的 IP 地址相匹配。

编辑/etc/dhcp/dhclient.conf:

prepend domain-name-servers 8.8.8.8,8.8.4.4;

8.8.8.8 和 8.8.4.4 是 Google DNS。如果您希望使用 ISP 的 DNS 服务器,只需替换它们即可。

重启网络

sudo /etc/init.d/networking restart

现在 Server2 应该具有与 Server1 共享的互联网连接。

相关内容