透過linux連接兩個介面

透過linux連接兩個介面

我有兩個介面 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 路由器,您必須:

  1. 像您已經完成的那樣啟用 IP 轉發(這只是為了將來的提醒)。編輯以下行/etc/sysctl.conf

    net.ipv4.ip_forward=1
    
  2. 使用 iptables 啟用 NAT。請執行以下命令,wlan0您的外部介面在哪裡。

    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 
    

請注意,iptables 規則會在重新啟動時重設。然後您必須自動重新設定 iptables。

相關內容