透過乙太網路線「管道」Wi-Fi 訊號

透過乙太網路線「管道」Wi-Fi 訊號

目前,我工作的大樓內的乙太網路連接埠已關閉,但 Wi-Fi 可用。我有一台支援 Wi-Fi 的筆記型電腦 (烏班圖14.04LTS (Trusty Tahr)) 和一個不支援 Wi-Fi 的工作站 (德班8(Jessie)) 僅附有乙太網路插頭。

是否可以透過乙太網路電纜連接兩者並能夠在工作站上獲得網路連接?

答案1

是的,你可以做到這一點,而且並不那麼難。我有一台帶有無線卡和乙太網路連接埠的筆記型電腦。我透過「交叉」乙太網路線將運行 Arch Linux 的 RapberryPi 插入其中。這是您可能需要的一件特殊的事情 - 並非所有乙太網路卡都可以進行機器到機器的直接連接。

另一個棘手的部分是 IP 位址。最好能說明這一點。這是我的小設定腳本。同樣,enp9s0 是筆記型電腦的乙太網路端口,wlp12s0 是筆記型電腦的無線設備。

#!/bin/bash
/usr/bin/ip link set dev enp9s0 up
/usr/bin/ip addr add 172.16.1.1/24 dev enp9s0
sleep 10

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
iptables -A FORWARD -o enp9s0 -i wlp12s0 -s 172.16.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

dhcpd -cf /etc/dhcpd.enp9s0.conf enp9s0

此腳本為乙太網路卡設定靜態 IP 位址 172.16.1.1,然後透過載入核心模組來設定 NAT。它打開 IP 路由(在筆記型電腦上),然後執行一些iptables半魔法,將資料包從無線卡路由到以太網,反之亦然。

dhcpd在乙太網路連接埠上運行以給出 IP 位址,因為這是 Raspberry Pi 想要的,但您可以在工作站上使用靜態位址,以及靜態路由、DNS 伺服器和 NTP 伺服器。

該文件/etc/dhcpd.enp9s0.conf看起來像這樣,以防萬一您沿著這條路線走:

option domain-name "subnet";
option domain-name-servers 10.0.0.3;
option routers 172.16.1.1;
option ntp-servers 10.0.0.3;
default-lease-time 14440;
ddns-update-style none;
deny bootp;
shared-network intranet {
        subnet 172.16.1.0 netmask 255.255.255.0 {
                option subnet-mask 255.255.255.0;
                pool { range 172.16.1.50 172.16.1.200; }
        }
}

IP 位址的選擇非常關鍵。我使用 172.16.1.0/24 作為從筆記型電腦引出的乙太網路電纜。筆記型電腦上的無線卡最終為 192.161.1.0/24 。您需要查看筆記型電腦無線網路的 IP 位址,並為乙太網路卡選擇其他子網路。此外,您需要選擇“bogon”或“不可路由”網路之一。在我的範例中,172.16.1.0/24 來自官方不可路由的 IP 位址範圍,192.168.1.0/24 也是如此,dhcpd.enp9s0.conf為 DNS 伺服器和 NTP 伺服器提供的 10.0.0.3 位址也是如此。您必須動動腦筋找出適合您的設定。

答案2

是否可以?絕對地。您所需要做的就是設定 IP 轉送、路由或其他一些(簡單)方法,將資料包從筆記型電腦上的乙太網路連接埠移至筆記型電腦上的 WiFi,反之亦然。這是不是一個好主意?可能不會—您的網路管理員可能會對您感到有點不滿。

答案3

根據維基百科,如果乙太網路連接埠之一是千兆位,普通電纜就可以工作,不需要交叉,我兩側都有千兆位,普通電纜就可以工作。

這個問題是在2016 年提出的,所以我假設網路管理器在兩台Linux 機器上運行,您可以使用它的GUI 來設定ip-s,如果沒有,您可能進行了自訂設定並且知道如何從命令提示符號設定ip,所以我省略了這些細節。

連接電纜後,您將在 GUI 中獲得與筆記型電腦和工作站上的乙太網路相關的網路介面名稱。

假設您不關心定期將工作站(和/或筆記型電腦透過乙太網路)連接到其他網路設備,您可以在兩個乙太網路介面上設定靜態 IP。

設定與wi-fi 不同的靜態IP 子網,例如,如果wi-fi 為192.168.1.0/16,則設定為192.168.2.1 和192.168.2.2,子網路遮罩為255.255.255.0,因為僅IP 的最後一個「數字」不同, 工作站上的 DNS 應設定為與筆記型電腦上的 Wi-Fi 相同的 DNS IP,以便能夠在工作站上使用 DNS(按名稱打開站點,而不僅僅是 IP)。

您需要在筆記型電腦上啟用IP轉送:

sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

由於筆記型電腦上的網路管理員很可能認為乙太網路的品質比 Wi-Fi 更好,因此預設情況下它會嘗試將所有內容傳送到它,並且在設定乙太網路後您將失去網路連線。要重新使用 wi-fi,在筆記型電腦上,您需要在與乙太網路連接相關的檔案的 [ipv4] 部分(您在乙太網路管理器 GUI 中看到的名稱)位置/etc/NetworkManager/新增行

never-default=true

(如果您的 GUI 有類似「僅用於此連接上的資源」的乙太網路複選框 - 在我的 GUI 上,它位於連接屬性的 ip4 部分,您可以使用它)。

最後,假設您的IP 表規則預設保留接受所有內容,您來自工作站的資料包將發送到互聯網,但不會找到返迴路徑,僅返回到筆記型電腦,直到您透過一個命令在筆記型電腦上設定NAT 規則(其中eth0 應該是名稱)您的 wi-fi 連接的名稱,您可以透過 找到名稱sudo ifconfig):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果此後不起作用,請嘗試重新啟動網路管理員:

sudo service network-manager restart

你應該已經準備好了。

相關內容