Networking

通過乙太網電纜“管道”Wi-Fi 信號

  • April 14, 2018

目前,我工作的大樓中的乙太網埠已關閉,但 Wi-Fi 可以正常工作。我有一台支持 Wi-Fi 的筆記型電腦(Ubuntu 14.04 LTS (Trusty Tahr))和一個非 Wi-Fi 支持的工作站(Debian 8 (Jessie)),只有一個乙太網插頭。

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

是的,你可以做到這一點,甚至沒有那麼難。我有一台帶無線網卡和乙太網埠的筆記型電腦。我通過“交叉”乙太網電纜將執行 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”或“non-routeable”網路之一。在我的範例中,172.16.1.0/24 來自官方不可路由的 IP 地址範圍,192.168.1.0/24 也是如此,dhcpd.enp9s0.confDNS 伺服器和 NTP 伺服器的 10.0.0.3 地址也是如此。你必須用你的頭腦來弄清楚什麼適合你的設置。

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