我有兩個介面 eth0 和 wlan0。使用 wlan0,我與可以存取 WAN 的 AP 連接,我透過 DHCP 從 AP 接收 IP 位址。
第二個介面是 eth0。我使用 dhcp 伺服器對其進行配置,向透過 eth0 連接到該子網路中的所有用戶端提供不同的子網路 IP 位址。
我的客戶端設備(智慧型手機)正在從 eth0 dhcp 伺服器正確取得 IP 位址。
但是我現在很難將 eth0 與 wlan0 連接起來。
eth0 網路是 192.168.42.0/24。我的電腦有兩張網路卡,使用 192.168.42.1。我的 wlan0 的 IP 位址是 172.22.3.193
我已經做了啟用 ipv4 轉發,但沒有成功。我的手機顯示沒有網路連接,但可以連接到 eth0。看來我必須設定某些 iptables 規則才能使轉送正常運作,但我嘗試了在網路上可以找到的不同方法,但沒有一個有效。
關於下一步該做什麼有什麼想法嗎?
編輯:我的路線命令給了我這個:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default www.go.wlantick 0.0.0.0 UG 600 0 0 wlan0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.22.0.0 0.0.0.0 255.255.0.0 U 600 0 0 wlan0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
答案1
要將 Linux 伺服器設定為 NAT 路由器,您必須:
像您已經完成的那樣啟用 IP 轉發(這只是為了將來的提醒)。編輯以下行
/etc/sysctl.conf
net.ipv4.ip_forward=1
使用 iptables 啟用 NAT。請執行以下命令,
wlan0
您的外部介面在哪裡。iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
請注意,iptables 規則會在重新啟動時重設。然後您必須自動重新設定 iptables。