Linux経由で2つのインターフェースを接続する

Linux経由で2つのインターフェースを接続する

私には eth0 と wlan0 という 2 つのインターフェースがあります。wlan0 では WAN にアクセスできる AP に接続し、AP から DHCP 経由で IP アドレスを受け取ります。

2 番目のインターフェースは eth0 です。私は、eth0 経由でそのサブネットに接続されているすべてのクライアントに異なるサブネット IP アドレスを配布する DHCP サーバーを使用してこれを構成しました。

私のクライアントデバイス (スマートフォン) は、eth0 DHCP サーバーから IP アドレスを正しく取得しています。

しかし、現在 eth0 を wlan0 に接続するのに苦労しています。

eth0 ネットワークは 192.168.42.0/24 です。両方の NIC を持つ私の PC は 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. wlan0iptables を使用して NAT を有効にします。外部インターフェイスがある次のコマンドを実行してください。

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

iptables ルールは再起動時にリセットされることに注意してください。その後、iptables の再構成を自動化する必要があります。

関連情報