web-dev-qa-db-ja.com

SSHポートフォワーディングをデバッグする方法

これは どこからでも自宅のマシンにアクセスするためのsshポートフォワード の拡張機能です。

そこに記載されていることを試しましたが、自分のマシンにsshできません。

ポート転送用のNetgearルーター設定:

Start Port: 22
End Port: 22
Server IP Address: IP address of by FreeBSD box

私のFreeBSDボックスの/etc/ssh/sshd_conf

PasswordAuthentication yes
AllowUsers root
X11Forwarding yes
AllowTcpForwarding yes

接続しようとしている方法:

dyndns.comにサインアップし、外部IPアドレスにマップするURLを取得しました。

ホームネットワーク内の別のマシンから、次のことを行います。ssh -l root my_dyndns_ipこれはちょうどタイムアウトしています。

一方、my_dyndns_urlは正常にpingできます。

デバッグ

どこからでもsshからmy_dnydns_urlにできるように、これを修正するにはどうすればよいですか?

Netgearルーターのログを調べようとしましたが、sshの試行に失敗すると、ルーターにログインが生成されませんでした。

/var/log/messagesも調べましたが、何も見つかりませんでした。

Edit:0sshを冗長モードで実行する(@jasonwryanの提案による):

奇妙なことに気づいています。dyndns.comが提供するURLにsshを実行すると、whatismyip.comから取得したもの以外のIPアドレスに接続しようとします。それは間違っていませんか?

Edit:1dyndnsの問題が解決されました。

Sshを実行しようとすると、タイムアウトしてエラーが発生します:接続がタイムアウトしました

Edit:2iptablesまたはNATはそれと関係がありますか?

Edit:3デバッグメッセージをキャプチャするためにssh-d optionで開始しました。

Wlanの他のマシンからfreebsdボックスにSSHで接続すると、正常に動作し、ログを確認できます。

しかし、外部IP(freebsdボックスに転送する必要があります)にsshすると、ログも表示されません。つまり、リクエストがfreebsdボックスに到達していません。そして、それはタイムアウトします。

8
hari

問題はポート転送ではなく、ルーターのNAT構成)にある別のオプションにあると思います。

まず、LAN IPを使用している場合は、ネットワーク上の別のマシンからSSHで正常に接続できることを確認してください。これにより、SSHが完全に機能するようになります。

次に、別のマシンからテストしますネットワーク外パブリックIPを使用します。これにより、ポート転送が確実に機能します。

第三に、同じマシンからテストしますネットワーク外そしてDynDNSURLを使用します。これにより、DynDNSが正しく機能していることが保証されます。

これらすべてが成功した場合、構成に問題はなく(これは正しいと思います)、問題はネットワーク内からパブリックIPに(直接またはDynDNSを介して)アクセスすることだけです。これは、パブリックIPの外部リクエストであるかのように内部リクエストをルーティングするには、ルーターでNATリフレクションを有効にする必要があることを意味します(可能な場合)。

6
MaQleod

Sshdサーバーはポート22でリッスンしていますか?次を追加してみてください。

Port 22

あなたの設定に。

それでも問題が解決しない場合は、1024を超えるポートを転送してみてください(一部のISPは、1024未満のポートでの非ビジネスサブスクライバトラフィックを許可していません)。また、これを行う場合は、同じ値を反映するように説明したconfの行を変更してください。

1
Mike

sshポートを443に変更してみてください-このポートに接続できる場合は、クライアントと自宅のPCの間にプロキシがあります

ファイアウォールでドロップおよび転送されたすべてのパケットをログに記録すると、誤った転送ルールを見つけることができます

nmap(または別のツール)を使用して外部IPをスキャンしてみてください(ポート<1024)-ファイアウォールのログには接続が切断されたことが表示され、クライアント側には開いたポートが表示されます

クライアントから自宅のPCにtracerouteを作成します-間に予期しないホストがありますか?これらのホストはポートを正しく転送していますか?

0
vasily-vm

最初にリモートポートに移動できるかどうかをデバッグするには、tcptracerouteを試してください。一部のマシンがポートをブロックしている場合は、出力で確認できます。 netstat -atunを使用してみてください。両方のマシンで、開いているポート/接続を確認してください。

0
user10819