場景
windows 電腦和 linux電腦連在同一臺交換機上,linux電腦有通過無線網絡。要實現Windows電腦通過交換機共享Linux電腦的無線網絡上網,需將Linux設為網關并進行網絡共享,步驟如下:
一、Linux電腦設置(網關配置)
- 開啟IP轉發?
編輯配置文件:
sudo vim /etc/sysctl.conf取消注釋:net.ipv4.ip_forward = 1
應用配置:sudo sysctl -p?
不行的話就直接重啟電腦
- 設置 linux 有線接口靜態IP?(可選)
我跳過了這一步,直接在系統設置里設置了 ip。
例如分配192.168.2.5/24給有線網卡:
sudo ip addr add 192.168.2.5/24 dev enp5s0
sudo ip link set enp5s0 up
- 配置NAT轉發?
添加iptables規則(假設無線網卡為 wlx584120dbaca9 ,自動獲取IP。有線網卡為 enp5s0 ,手動配置ip,例如配為 192.168.2.5):
依次執行:
#清除現有規則(可選)
sudo iptables -F
sudo iptables -t nat -F#啟用NAT(將 enp5s0 的流量轉發到 wlx584120dbaca9 )
sudo iptables -t nat -A POSTROUTING -o wlx584120dbaca9 -j MASQUERADE
sudo iptables -A FORWARD -i wlx584120dbaca9 -o enp5s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp5s0 -o wlx584120dbaca9 -j ACCEPT#保存規則
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
- 開啟DHCP服務(可選,開啟后 windows電腦可以不用設置固定ip,我跳過了這步)
sudo apt install isc-dhcp-server -y
sudo vim /etc/dhcp/dhcpd.conf在文件中加入:
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200;
option routers 192.168.2.5; # linux有線接口ip
option domain-name-servers 8.8.8.8; #DNS服務器
}保存后,啟動服務
sudo systemctl restart isc-dhcp-server
二、Windows電腦設置
- 有線網絡配置靜態IP?(如果 linux 開啟了 DHCP,則可改為自動獲取 IP)
IP地址:192.168.2.6(與Linux同網段)
子網掩碼:255.255.255.0
網關:192.168.2.5(指向Linux有線IP)
DNS:公共DNS 8.8.8.8 或運營商DNS?
關閉防火墻測試?
控制面板 → Windows Defender防火墻 → 啟用/關閉防火墻(臨時關閉驗證連通性)?
三、故障排除
開放Linux防火墻端口:
sudo ufw allow from 192.168.2.0/24 # 允許內網訪問