web-dev-qa-db-ja.com

静的LANとWifiゲートウェイ間のLinuxルート追加

有線イーサネットを介して2台のローカルマシンを相互に接続しており、そのうちの1台はインターネットアクセスを提供するwifiネットワークにも接続されています。

トポロジの疑似グラフィック表現は次のとおりです。

(PC2)----------(PC1)---------(Wifi Gateway)
    192.168.2.x      10.0.0.x

PC2の構成は次のとおりです。

iface eth0 inet static
address 192.168.2.2
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

...そしてPC1の構成は次のとおりです。

iface eth0 inet static
address 192.168.2.1
network 192.168.2.0
netmask 255.255.255.0
gateway 192.168.2.1

PC1では、インターネットにアクセスできなかったため、wlan0のデフォルトルートを追加しました。

route add default gw 10.0.0.1 wlan0

また、以下を使用して192.168.2.xネットワークのゲートウェイを設定してみました。

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1

しかし、私はまだPC2からインターネットにアクセスできません。


編集

Wi-Fiゲートウェイにアクセスできません。

2
Hamza

PC1 eth0インターフェイスにゲートウェイを定義しないでください。これはデフォルトルートを設定するのと同じです。したがって、追加のデフォルトルートを10.0.0.1に設定すると、パケットの半分が間違った方向に進みます。

PC1がPC2のルーターとして機能するには、パケット転送を有効にする必要があります。これは次のように有効にできます。

Sudo sysctl -w net.ipvt.ip_forward=1

再起動後も存続させるには、/etc/sysctl.confを変更し、find thelineを追加します。

#net.ipv4.ip_forward=1

コメントを外します(または、存在しない場合は追加するか、存在するが1に設定されている場合は0に変更します)

最後に、10.0.0.1のwifiゲートウェイを変更し、静的ルートを追加する必要があります。たとえば、192.168.2.0/24ネットワークのゲートウェイは10.0.0.0/24の範囲のPC1IPアドレスです(おそらく10.0だと思います)。 .0.2)。

ああ、あなたが追加したところはどこでも

route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1
  • 削除する必要があります-192.168.2.0/24ネットワークはwifiルーター経由でアクセスされません。
2
Paul

あなたが望むのは、PC1のインターネット接続を(マスカレードを使用して)共有することです。

あなたはそれをするためにオンラインでたくさんのガイドを見つけることができます、しかしここに要約があります:

まず、既存のファイアウォールルールをフラッシュして削除します。

iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

次に、iptablesをNAT translation:

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

起動時にipテーブルが確実に復元されるようにするには、iptables-save | tee /etc/iptables.savを実行して/etc/rc.localを編集し、「exit0」行の前に次の行を追加します。iptables-restore < /etc/iptables.sav

IP転送を有効にする:

echo 1 > /proc/sys/net/ipv4/ip_forward

Ubuntuでは、/etc/sysctl.confを編集してコメントを解除する必要もあります。

 #net.ipv4.ip_forward=1

PC2では、次のことも行う必要があります。

 ip route add default via 192.168.2.1
2
m4573r