web-dev-qa-db-ja.com

SSH経由でポート転送を設定するにはどうすればよいですか?

私はシェルアカウント(Debian)を持っており、すべてのローカルホストブラウザのインターネットトラフィックがそのシェルアカウントを通過するようにしたい。

インターネットブラウザを設定する方法とポート転送用にPuTTYを設定する方法を知っていますが、これを実現するためにサーバーで何をする必要があるかはわかりません。

サーバーがポート転送を受け入れるように、サーバーで何をすべきか知っている人はいますか?デフォルトの設定では動作しないようです。

5
Jim

sshd_configファイルを変更するだけ#PermitTunnelnoからyesへの設定。

から

#PermitTunnel no

PermitTunnel yes
8
Geo

すべてのローカルホストブラウザのインターネットトラフィックがそのシェルアカウントを通過するようにします。

ssh -D 8080 -T -f -l username proxy_Host
  • 動的ポート転送(SOCKSプロキシ)を作成します。
  • -Tはttyを割り当てません
  • -fはSSHをすぐにバックグラウンドに移行させます
    • これを機能させるには、公開鍵認証を使用する必要があります
    • 少なくともdebianではssh-copy-idを見てください
  • 次に、指定したポートを通過するようにブラウザを設定する必要があります

セットアップのテスト中は、-Tおよび-fを省略します。ローカルポート転送(-L [listenaddress]:localport:remotehost:remoteport ssh_Host)は、リモートホストに対してのみ機能します(たとえば、ssh -L 8080:google.com:80 ssh_Hostは、すべてのWebトラフィックではなくgoogle.comを介してトラフィックをssh_Hostに転送するだけです)

それが機能しない場合は、-vvvスイッチを追加したSSHコマンドの出力で質問を更新してください。

5
serverhorror

ssh -R 8080:google.com:80 ssh_Hostを使用する場合

sshd_config

GatewayPorts yes

ループバックだけでなく、ワイルドカードまたは外部インターフェイスをリッスンする必要があります。

2
Ilia Vihtinsky

私もこれをお勧めします: http://blog.slowb.ro/2013/06/21/create-a-ssh-based-vpn-system/

要約すると、接続を確立するときに、sshコマンドで-D [port]を解析します。ただし、ポートはポート1025+以上である必要があります。

0
ticoombs