2

EC2 インスタンスに ssh する手順を知っています。しかし、大学のファイアウォールがポート 22 をブロックしていると思います。

管理者に依頼せずにインスタンスに接続する方法はありますか?

何が私を妨げているのかを理解するにはどうすればよいですか?

4

2 に答える 2

2

提案されたように、コメントで、問題が近端にあるか遠端にあるかを確認する必要があります。このtcptracerouteユーティリティは、これに適したツールです。

$ sudo tcptraceroute hostname_or_ip 22

これは、宛先ポート (22) への TCP 接続をセットアップしようとしますが、IP 存続可能時間 (TTL) フラグを人為的に低い値 (1 から開始し、1 ずつ増加) に設定して、接続試行が遭遇する各ルーターにプロンプ​​トを出します。パケットがあまりにも多くのルーターを通過し、転送されるべきではないと基本的に結論付けたため、あなたに返されたパケットを拒否します。

これは常に適切に機能するとは限りません (一部のネットワーク ハードウェアの IP スタックが準拠していないため)。そのため、このツールが自分の場所で役立つかどうかをテストするには、次のようにします。

$ sudo tcptraceroute google.com 80

このリクエストで有効なトレースのように見えるものを取得できれば、SSH のテストの有効性にかなりの自信を持つことができます。

ec2 インスタンスにトンネリングする方法や、別のポートでリッスンするように構成する方法は他にもありますが、ローカル LAN によってブロックされている場合は、これらの方法もブロックされていることに気付く可能性があります...そして、インスタンスの再構成は注意が必要ですSSHできない場合。

ただし、新しいインスタンスを起動する場合は、起動時にカスタマイズする方法があります。

インスタンスの起動時に AWS コンソールに表示されるEC2ユーザー データウィンドウでは、インスタンスの初回起動時にカスタム スクリプトを実行できます。

この最初の行がシバン (#!) で始まる場合、EC2 はそれがシェル スクリプトであると想定します。このファイルを #!/bin/bash で開始すると、残りの部分が最初の起動時に実行されます。/etc/ssh/sshd_configこれを使用して、たとえば 22 以外のポート (たとえば 2222) でリッスンするように sshd を構成してから、sshd を再起動するなどの微調整を行うことができます。これは、ユーザー データにこのようなものを含めることで実現できます。

#!/bin/bash

/usr/bin/perl -pi -e 's/^Port\s+22$/Port 2222/' /etc/ssh/sshd_config
/usr/sbin/service sshd restart

sshd サービスは、ポート 22 の代わりにポート 2222 でリッスンします。

また、創造性を発揮して、この機能を使用して pptpd をインストールおよび構成することもできます。たとえば、ポイントツーポイント トンネリング プロトコルを使用してサーバーにトンネリングできます...ただし、PPTP を EC2 で機能させるには、 Classic EC2 セキュリティグループは TCP、UDP、および ICMP のみを許可するため、VPC でインスタンスを起動します。PPTP が機能するには、インスタンスに対してすべてのプロトコルを開くことができる必要があります。PPTP では、トンネリングされたデータを転送するためにGeneric Route Encapsulation (GRE)プロトコルが必要です。GRE は IP ですが、TCP でも UDP でもないため、Classic EC2 では使用できません。

また、iirc (ユーザー データ トリック) は、インスタンスが最初に起動されたときにのみ機能します。

于 2013-07-30T02:52:59.930 に答える
2

大学のファイアウォールが TCP 22 をブロックしているかどうかをテストするには、www.ismyportblocked.comを試してください。

IsMyPortBlocked は、ファイアウォールによってフィルタリング/ブロックされる可能性がある、ブロックされた OUTBOUND ポートのテストです。

于 2013-08-14T21:11:21.830 に答える