
次のコマンドを使用して、私のサーバーにアクセスポイントを正常に設定しました。Wi-Fi-APスナップショット
wakatana@server:~$ sudo wifi-ap.config get
debug: false
dhcp.lease-time: 12h
dhcp.range-start: 10.0.60.2
dhcp.range-stop: 10.0.60.199
disabled: false
share.disabled: false
share.network-interface: eth0
wifi.address: 10.0.60.1
wifi.channel: 6
wifi.country-code:
wifi.hostapd-driver: nl80211
wifi.interface: wlan0
wifi.interface-mode: direct
wifi.netmask: 255.255.255.0
wifi.operation-mode: g
wifi.security: wpa2
wifi.security-passphrase: passwordpassword
wifi.ssid: Ubuntu
ここで、接続されているクライアントからのすべてのトラフィックを特定のIP_ADDRESS:PORT(その時点でAPと同じマシン上で実行中)にルーティングしたいと思います。クライアントがwww.google.comにアクセスした場合は、127.0.0.1:555にリダイレクトされているかのように機能する必要があります。
私が正しく理解したら、少なくとも2つの可能な解決策がありますが、実際にどのように機能させることができるかわかりません。
- dnsmasq + nginx - これまでこれをやったことがないので、複雑すぎるように見え、現在のDNSが中断されないかもしれません。
- iptables - ここでは基本的なiptablesの経験がありますが、PREROUING、POSTROUTING、DNAT、SNATなどについてはよくわかりません。
私は次を試しました
$ sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 555 -j DNAT --to-destination 127.0.0.1
$ sudo iptables -t nat -nvL PREROUTING
Chain PREROUTING (policy ACCEPT 14 packets, 1116 bytes)
pkts bytes target prot opt in out source destination
1852 351K DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
0 0 DNAT tcp -- wlan0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:555 to:127.0.0.1
しかし、効果はありません。
- Googleを開く -https://google.com
- Whatsmyipを開く -http://www.whatsmyip.org/
- ウェブサイトにアクセスできません -https://ページが存在しません
- ウェブサイトにアクセスできません -http://存在しないページ
答え1
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 555 -j DNAT --to-destination 127.0.0.1
現在のルールはトラフィックのみ<some_server>:555
にリダイレクトします127.0.0.1:555
。 HTTP はポート 80 を使用し、HTTPS はポート 443 を使用するため、どちらも上記の規則に準拠していません。
また、この特定のケースでは、パケットの宛先を(このホストではない)から(このホスト)に変更するため、DNATではなくREDIRECTを使用する必要があります。
これはHTTP用です。
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-ports 555
HTTPSの場合は、SSL / TLSが有効になっているサービスの別のコピーを設定する必要があります。ポート4555に接続すると仮定すると、HTTPSルールは次のようになります。
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-ports 4555
...次の問題は、最新のWebブラウザがHTTPSを介してGoogleに接続したときに任意の証明書を許可しないことです。