この状況には3つのマシンが含まれます。
- ㅏ一部のラップトップは、何らかの方法でインターネットに接続されています。
- 第二標準ISP(dyndnsが提供する固定IP:myserver.dyndns.com)を介してインターネットに接続されているサーバー
- 氏他のサーバーが4Gアダプタを介してインターネットに接続されています。
ㅏ<---ISP1 ---ISP 2 --->第二<---ISP 2---4G--->氏
autossh
4Gドングルは新しく着信接続を拒否したので、Bを介してAからCに接続するチャンネルを設定しました。
autossh -M 0 -N [email protected] -R 10022:127.0.0.1:22 -R 10000:127.0.0.1:10000
良い結果。
次に、次のように入力して4GドングルのWebインターフェースにアクセスしたいと思います。
myserver.dyndns.com:80
だからNATingを試しました。
存在する第二:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:10000
そして
iptables -t nat -A POSTROUTING -d 127.0.0.1 --dport 10000 -j MASQUERADE`
存在する氏:
iptables -t nat -A PREROUTING -p tcp --dport 10000 -j DNAT --to-destination 192.168.8.1:80
そして
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
注:eth1
4Gドングルのインターフェースです。氏インターフェイスのIPは192.168.8.100、ドングルのIPは192.168.8.1です。
残念ながら、これは機能しません。 IP転送も有効にしました。
echo 1 > /proc/sys/net/ipv4/ip_forward
タイピング中
iptables -t nat -L -v -n
存在する第二そして氏, PREROUTING 行のみ第二試みるたびにパケット数が増えることがわかります。
これは、動作方法の不完全な理解によって引き起こされる可能性がありますnetfilter
。
あなたが提供できるどんな助けにも感謝します!
答え1
iptables -t filter -nvL
サーバーBとCの出力を提供してもらえますか?
autossh
チャンネルがサーバーCで実行されているようです。そうなんですか?それでは、別のアプローチを提案します。 Bでは、カーネルが許可されていないユーザーがポート80を開くことを許可していないため、REDIRECTルールが必要です。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 10000
iptables -t filter -A INPUT -p tcp --dport 10000 -j ACCEPT
(編集する):サーバーBでは、次のGatewayPorts
場所で有効にする必要があります/etc/ssh/sshd_config
。
# /etc/ssh/sshd_config
GatewayPorts clientspecified
サーバーCでパラメータを変更して、接続をドングルに直接渡しますautossh
。
autossh -M 0 -N [email protected] -R 10022:127.0.0.1:22 \
-R :10000:192.168.8.1:80
あなたの設定で見られる唯一のエラーは、PREROUTING
サーバーCのチェーンルールに関するものです。この場合、ネットワークインターフェイスを介して着信パケットにのみ影響するため、評価されません。生成された接続はssh
ローカルで作成されるため、OUTPUT
チェーンの規則に影響されます。