Ubuntu server 20.04 作为局域网其他机器上网网关

大佬见字如面,向您问好!

我有一台ubuntu server 20.04 双网卡。

network:
  ethernets:
    eno1:
      addresses:
      - 218.64.11.217/25
      gateway4: 218.64.11.129
      nameservers:
        addresses:
        - 114.114.114.114
        search: []
    eno2:
      addresses:
      - 10.10.11.4/24
      nameservers:
        addresses:
        - 114.114.114.114
        search: []
    eno3:
      dhcp4: true
    eno4:
      dhcp4: true
    enp6s0f0:
      dhcp4: true
    enp6s0f1:
      dhcp4: true
  version: 2

eno1 能上网,且有公网ip。eno2 内网,无法上网。eno2 还有很多同级,同样无法上网。

我现在想实现 eno2 同级设备可以通过这台 ubuntu server 实现上网。当 eno2 同级设备把网关设置为10.10.11.4时,则可以上网。

阅读 5.2k
1 个回答

方法1 使用iptables
开启ip转发
echo 1 > /proc/sys/net/ipv4/ip_forward

用iptables的nat功能
iptables -t nat -A POSTROUTING -s 10.10.11.0/24 -j MASQUERADE


方法2 使用firewalld
举个例子

  1. 把内网加到trusted区,外网加到public区
    firewall-cmd --zone=trusted --add-interface=eno2
    firewall-cmd --zone=public --add-interface=eno1
  2. 开启 masquerade
    firewall-cmd --zone=public --add-masquerade
    firewall-cmd --zone=trusted --add-masquerade

其实这两个意思差不多,都是用的 iptables 的 nat 功能。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题