我有一台运行 ubuntu server 16.04 的服务器电脑,该服务器有两个以太网端口 -eno1
和eno2
。我使用我的eno1
端口访问互联网,使用interfaces
位于以下文件中的代码/etc/network/
auto eno1
iface eno1 inet static
address 103.56.4.162
netmask 255.255.255.248
gateway 103.56.4.161
dns-nameservers 103.56.4.6 8.8.8.8
我可以访问互联网,没问题。
我想要的是共享互联网eno2
并且我想从这个eno2
以太网端口连接我的路由器。
我怎样才能实现这个目标?
答案1
我已经知道怎么做了。经过多次尝试,我找到了解决方案。我从这个链接获得了解决方案 https://help.ubuntu.com/community/Router
首先,在编辑接口文件之前不要忘记备份它
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
因为eno2
我已将下面的几行附加到上述接口文件中
auto eno2
iface eno2 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
然后我创建了一个名为的脚本文件nat.sh
并放入下面的代码:
echo -e "\n\nLoading simple rc.firewall-iptables version $FWVER..\n"
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
EXTIF="eno1"
INTIF="eno2"
echo " External Interface: $EXTIF"
echo " Internal Interface: $INTIF"
#======================================================================
#== No editing beyond this line is required for initial MASQ testing ==
echo -en " loading modules: "
echo " - Verifying that all kernel modules are ok"
$DEPMOD -a
echo "----------------------------------------------------------------------"
echo -en "ip_tables, "
$MODPROBE ip_tables
echo -en "nf_conntrack, "
$MODPROBE nf_conntrack
echo -en "nf_conntrack_ftp, "
$MODPROBE nf_conntrack_ftp
echo -en "nf_conntrack_irc, "
$MODPROBE nf_conntrack_irc
echo -en "iptable_nat, "
$MODPROBE iptable_nat
echo -en "nf_nat_ftp, "
$MODPROBE nf_nat_ftp
echo "----------------------------------------------------------------------"
echo -e " Done loading modules.\n"
echo " Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " Clearing any existing rules and setting default policy.."
iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF
echo -e "\nrc.firewall-iptables v$FWVER done.\n"
然后我通过做让它可执行
chmod a+x nat.sh
然后以 root 身份运行
sudo sh nat.sh
让我们的新脚本可启动,这样我们就不必每次重新启动时都运行该脚本。
sudo cp nat.sh /etc/init.d/
sudo ln -s /etc/init.d/nat.sh /etc/rc2.d/S95masquradescript
然后我插入连接到路由器的以太网电缆,eno2
并将路由器配置为静态 IP,如下所示:
IP Address: 192.168.0.2
Netmask: 255.255.255.0 (/24)
Gateway: 192.168.0.1
DNS Server: 103.56.4.6
8.8.8.8
这对我很有用。