如何将网络流量从 WiFi 转发到以太网?

如何将网络流量从 WiFi 转发到以太网?

我有两台计算机:计算机 1(Ubuntu 桌面)有 WiFi 连接和以太网端口,计算机 2(Ubuntu 服务器)只有以太网端口。我想让计算机 1 通过两台计算机之间的以太网连接与计算机 2 共享其互联网连接。

到目前为止我所做的:

  • 我已使用以太网电缆将两台计算机连接在一起。
  • 我已经为两台电脑创建了LAN
    • 每台计算机都有一个静态 IP(在 中配置/etc/netplan/*):计算机 1 配置为192.168.2.1/24,计算机 2 配置为其192.168.2.140/24默认网关192.168.2.1
    • 两台计算机都能互相 ping 通。
  • 我尝试iptable在计算机 1 上分别在 WiFi 和以太网接口 、wlp5s0和之间设置转发enp4s0(从 的输出中找到ifconfig),但我没有任何运气。我对配置的了解不够iptables,所以我找到的每一份指南或多或少都是盲目的。
  • IP 转发已启用sudo echo 1 > /proc/sys/net/ipv4/ip_forward

我听说过“网络桥接”,但我不确定这是否可以在这种情况下使用。

在旁边:我知道如何使用网络管理器中的“共享到其他计算机”选项。我已经使用过它,而且效果很成功。我不喜欢它的是我无法设置静态 IP 地址。另外,我想知道如何从命令行执行所有这些操作。

答案1

  • 将服务器的默认网关设置为桌面的IP地址。
  ip route add 0.0.0.0 via 192.168.2.1
  • 在桌面上:更改行/proc/sys/net/ipv4/ip_forward1
  • 在 iptables 中设置伪装
sudo iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o wlp5s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlp5s0 -o enp4s0 -j ACCEPT
  • 我们需要添加一条帖子路由(这是在分组聊天中发现的)
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 192.168.1.139                   
  • 取消注释该行net.ipv4.ip转发=1在文件中/etc/sysctl.conf
  • 保存 iptables:
sudo iptables-save -t nat

相关内容