我有一台无法访问互联网的服务器,但我时不时地需要更新它的一些软件包。为了让我的生活更轻松,我使用同样运行 Linux 的笔记本电脑通过笔记本电脑的以太网接口共享笔记本电脑的 WiFi 连接,并使用普通的以太网电缆将服务器连接到笔记本电脑。当然,我还更改了服务器上的 GW,以匹配我的笔记本电脑以太网接口的 IP 地址。
我知道如何从网络管理器 GUI 中做到这一点,但我想知道如何使用命令行来做到这一点。我想找到一个最好不涉及编写IPTables
自定义规则的解决方案。我的想法是我想编写一个脚本和一个别名来做到这一点。
一旦完成,我将在这里和 上与大家分享源代码Github
,毕竟这就是开源的美妙之处。
答案1
有点匆忙,但基本上...如果 enp0s3 是您的 LAN,enp0s8 您的 WLAN:
笔记本电脑侧:
#ENABLE PACKET FORWARD
echo 1 > /proc/sys/net/ipv4/ip_forward
#YOU COULD JUST ENABLE FORWARD FOR EVERYTHING WITHOUT LIMITATIONS, USING INTERFACES JUST TO BE MORE SPECIFIC
iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
#MASQUERADE OUTBOUND CONNECTIONS
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
这可以很容易地编写脚本,并且所有配置都会在重新启动时清除。
服务器端:
ASSIGN VALID STATIC NETWORK CONFIGURATION WITH LAPTOP IP AS GATEWAY
ASSIGN VALID DNS (VIA /etc/resolv.conf IF LINUX), OR YOU CAN DO ADDITIONAL IPTABLES RULES TO DNAT DNS TRAFFIC LAPTOP SIDE
答案2
当您使用 GUI 时,这意味着您基本上激活了 NetworkManager 中的连接配置文件。您可以从命令行执行相同的操作。
首先,通过查看输出找到相关配置文件的名称nmcli connection
。然后使用 激活配置文件nmcli connection up "$PROFILE_NAME"
。
当然,您可以仅通过命令行创建和修改您的配置文件,例如使用 nmcli。请参阅手册页。配置文件中的相关设置是ipv4.method=shared
。