私はautosshを使用しており、次の例のように設定しました。http://surniaulula.com/2012/12/10/autossh-startup-script-for-multiple-tunnels/
私はそれがかなりうまく動作することを知っていましたが、少し説明が必要です。特に、次の例では、127.0.0.1と*の違いは次のとおりです。
ForwardPort=(
"L 127.0.0.1:3397:127.0.0.1:3306"
)
比較的
ForwardPort=(
"L *:3397:127.0.0.1:3306"
)
1つ目はホスト自体から来るとリダイレクトされ、2つ目はどこからでも転送されるようです。私にとって、これは*がトラフィックを転送するすべてのIPを意味しますが、これはシステムのすべてのアダプタを表すと聞きました。 IPやアダプタが何なのか気になります。最終結果は同じだと思いますが、私自身の理解を明確にしたいと思います。
修正する
使用しているネットワークの特定のIPを含むようにテストを更新し、ポートに接続しようとしましたが、指定された特定のポートでは機能しないことがわかりました。例:
ForwardPort=(
"L x.x.x.x:3397:127.0.0.1:3306"
"L 127.0.0.1:3397:127.0.0.1:3306"
)
これはうまくいかないので、私の友人はアダプターについて正しいと信じています。誰もがアダプタのしくみに関する詳細を提供したり、それを説明する良い記事へのリンクを提供できることを願っています。
答え1
私は自分の答えを見つけましたが、興味がある人や私のような人がGoogleで回答を検索したが見つからない場合に備えて回答を投稿すると思いました。
したがって、x.x.x.x
これを行うと、これは私のリモートサーバーのWAN IPになります。 IPがそのアダプタの1つではないので、autosshはこれについて何も知りません。ifconfig
サーバーで実行している場合は、たとえばWAN IPを含むローカルループバックやその他の127.0.0.1
アダプターが取得されます。eth0
これにより、*
ローカルループバックとWANからのすべての要求が転送されます。したがって、*
すべての要求がルーティングされ、127.0.0.1
マシン自体からの着信要求のみがルーティングされます。
外部転送を許可しますが、これを実行できる人を制限するには、*
サーバーの通信を実行してから制限するだけですiptables
。