通过以太网将笔记本的 Wifi 用于另一台 PC

thp*_*rus 6 linux wifi routing ethernet

我想通过连接到 WLAN 的笔记本电脑将 PC 连接到互联网。

设置应类似于以下方案: PC (eth0) -> Notebook (eth0) -> Notebook(wlan0) -> Router.
两者都运行 linux - arch 在笔记本上和 funtoo 在 PC 上。

编辑:所以我尝试了 rush 的方法,但它对我不起作用,这是我所做的:

个人电脑:

ifconfig eth0 192.168.2.3
route add default gateway 192.168.2.2
nameserver 8.8.8.8 > resolv.conf
Run Code Online (Sandbox Code Playgroud)

笔记本:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 192.168.2.101
Run Code Online (Sandbox Code Playgroud)

192.168.2.101 是 wlan0 IP 地址。我无法 ping 192.168.2.2(连接:网络无法访问)并且连接似乎不再在笔记本电脑上工作。

rus*_*ush 13

这很容易。您需要将 PC 连接到笔记本电脑。eth0在 PC 上配置(例如设置 ip = 192.168.2.3 和默认网关 192.168.2.2 和 dns 服务器为 8.8.8.8)。这就是您需要在 PC 上执行的全部操作。在笔记本上,您需要像往常一样设置互联网连接并eth0使用以下方式进行配置:将ip地址设置为192.168.2.2,使用iptables启用网络转发。

希望你能够设置ip、gw和dns。要设置转发,请从 root 用户执行以下脚本:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
INET="wlan0"
INETIP="$(ifconfig $INET | sed -n '/inet addr/{s/.*addr://;s/ .*//;p}')"
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP
Run Code Online (Sandbox Code Playgroud)

注意您已经拥有的任何特定 iptables 规则。要禁用它们,您可以上面的脚本之前执行:

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Run Code Online (Sandbox Code Playgroud)

瞧,您在 PC 上可以上网。