
私が使用しているルールは次のとおりです:
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface wlan5 -j MASQUERADE
iptables --append FORWARD --in-interface wlan3 -j ACCEPT
私は 192.168.1.100 の wlan5 と 10.0.0.1 の wlan3 を持っています。私は 2 枚の WiFi カードを使ってラップトップを WiFi リピーターにしています。
つまり、ユーザーは wlan3 に接続し、ゲートウェイは 10.0.0.1 となり、すべてが wlan5 [gw 192.168.1.1] にリダイレクトされます。
これはうまく機能していますを除外するラップトップでホストされているローカル HTTP サーバーにアクセスできません。このサーバーはラップトップでホストされており、localhost、つまり 10.0.0.1 として動作します。
$ curl -I 10.0.0.1
HTTP/1.1 301 Moved Permanently
Date: Tue, 26 Feb 2013 02:35:32 GMT
Server: Apache/2.2.22 (Ubuntu)
Location: http://10.0.0.1/index.php
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
さて、ここで問題が発生します。共有ネットワーク [wlan3] 上の IP 10.0.0.20 のクライアントが 10.0.0.1:80 にアクセスしようとしますが、接続できません。
$ wget http://10.0.0.1
Connecting to 10.0.0.1 (10.0.0.1:80)
wget: can't connect to remote host (10.0.0.1): Connection refused
10.0.0.1 に ping でき、外部 IP にも ping できます。つまり、インターネット接続はありますが、iptables ルールが原因だと思いますが、HTTP にアクセスできません。エラーの直後に、ラップトップの syslog に次のメッセージが表示されます。
Feb 25 21:36:19 toshi kernel: [57806.285170] Inbound IN=wlan3 OUT= MAC=9c:b7:0d:a5:45:67:a8:26:d9:3e:04:21:08:00 SRC=10.0.0.20 DST=10.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=28282 DF PROTO=TCP SPT=58343 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
そこで質問ですが、IP 要求を 10.0.0.1 に転送しないようにして、wlan5 に転送しないようにするにはどうすればよいでしょうか?
ありがとう
答え1
編集: 問題は解決したと思ったら、iptables コマンドを発行しなくても再び動作しなくなりました。なぜ動作し続け、その後動作しなくなるのかはわかりません。>.<
1 つの [長距離] Wi-Fi デバイスから別の [内部] にインターネットを共有できる別の iptables コマンドを見つけました。
iptables -t nat -A POSTROUTING -o wlan5 -j MASQUERADE
質問の iptables コマンドの代わりに、これにより、インターネットにアクセスでき、10.0.0.20 から 10.0.0.1 の http/ssh にアクセスできます。
答え2
のiptables-save
出力あなたが投稿したフィルター テーブルには、INBOUND、OUTBOUND、LOG_FILTER、LSI、LSO というカスタム チェーンが表示されています。Firestarter は 5 つのチェーンを作成しますが、すべてその名前が付けられています。
問題は Firestarter によって発生していると思われます。Firestarter を開いて、本当に無効になっているかどうかを確認してください。
参考文献: