Ethernet

使用命令行共享到乙太網的 wlan 連接

  • April 11, 2022

我有一個 wlan1 連接,我想與 LAN 上的其他電腦共享(通過乙太網 - eth0)。由於這在某種程度上是一個臨時解決方案,因此我希望通過腳本來完成,這樣我就不會觸及主機的網路配置文件(即,如果我願意,我將在每次重新啟動後執行此腳本)。

問題是我無法橋接 wlan1 和 eth0

sudo brctl addif br0 eth0 wlan1

我看到需要啟用 4addr

iw dev wlan1 set 4addr on

確實,我可以將 wlan1 添加到網橋,但是……我失去了 wifi 連接!我看到這也是一個常見問題:(在2中,解決方案說要這樣做

iw dev wlan0 interface add wds.wlan0 type managed 4addr on
ip link set dev wds.wlan0 addr $ADDR
ip link set dev wds.wlan0 up

其中 $ADDR 是“路由器中配置的 WDS 設備地址”。我不明白那是什麼?我的wlan1網卡的MAC地址?然後我應該如何創建我的橋樑?以下不起作用:

sudo brctl addbr br0
sudo brctl addif br0 eth0 wds.wlan0

或者在這裡,他們建議安裝ebtables。但是該頁面沒有解釋我應該如何創建橋樑,並且他們修改/etc/network/interfaces了我不想做的事情……

那麼,有人可以幫我正確創建那座橋嗎?

到目前為止,我的 wifi 腳本是:

#!/bin/bash
# this is for wlan1 - wifi connection
pkill dhclient
pkill wpa_supplicant
ip link set dev wlan1 down
ip addr flush dev wlan1
iwconfig wlan1 essid "mywifi"
iwconfig wlan1 frag 2432
iwconfig wlan1 rts 2432
ip link set dev wlan1 up   
iwconfig wlan1 rate 1M
dhclient -v wlan1

# this is my IP address on my LAN
ifconfig eth0 192.168.0.8 netmask 255.255.255.0

我正在執行 Linux Mint 17.1 主機。我已經安裝了bridge-utils

是否可以繞過橋接部分並iptables改為使用?

如果是這樣,您可以設置源 NAT 來偽裝從 wlan 介面傳出的流量。

首先,您需要啟用 IP 轉發:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

接下來,您需要偽裝流出的流量:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

讓 LAN 連接的主機使用 192.168.0.8 作為其預設網關,並讓您的機器使用 wlan0 介面連接的網關作為預設網關。

引用自:https://unix.stackexchange.com/questions/243408