次のコマンドを使用して、ホームLAN上のあるコンピュータから同じLAN上の他のコンピュータにメッセージを送信しようとします。インターネット猫。これはbashで実行するコードです。コンピュータ1
nc -l -p 31337
存在するコンピュータ2(プライベートIPアドレス 192.168.1.10)
nc 192.168.1.10 31337
問題は、ある端末からメッセージを送信するときに他のコンピュータには何も表示されず、その逆も同様です。同じPCで同じことを行いますが、2つのターミナルウィンドウが開いていると、すべてがうまくいきます。ただし、同じコンピュータのある端末から別の端末にメッセージを送信することは意味がありません。私が望むのは、私の家のLANのあるコンピュータから別のコンピュータに送信することです。
PS 私は両方のコンピュータでUbuntu 16.04.4を実行しています。
答え1
これをテストする方法は次のとおりです。
tcpdump
1)PC1とPC2、ブート、またはwireshark
LANインターフェイスで2番目のウィンドウを開きますtcpdump -ni eth0
。
2) ping
PC1 から PC2 へ、PC2 から PC1 への作業を行います。 ping 応答を受け取っていることを確認し、ダンプでパケットを表示できることを確認します。
ping応答が表示されない場合は、ネットワーク設定に問題がある可能性があります。見つけて修正してください。
3) 今すぐ使用してnc
パケットを再度観察します。結果に基づいて、問題がどこにあるかがわかります。
答え2
問題は、私のWindowsファイアウォールがポート31337へのインバウンド要求をブロックすることです(PCのコードはWindowsのLinuxサブシステムで実行されます)。したがって、コントロールパネル - >システムとセキュリティ - > Windows Defenderファイアウォールに移動し、詳細設定を選択する必要があります。ポート 31337 への要求を許可する新しい着信ルールを作成します。