◆やりたいこと・困っていること
- サーバー側でnetcatを利用してudp port:8011で待ち受け
- クライアント側からnetcatを利用してudpでメッセージ送信(仮に文字列「abc」を送信)
- サーバー側でメッセージ「abc」が受信できることを確認したい
しかし、上記を試したところ
クライアント側では「read(net): Connection refused」と表示され、
サーバー側では何のメッセージも表示されない状況です。
試したこと・状況等以下に記載している通りなのですが、完全に行き詰まっている状況ですので、
解決の糸口となるような調査方法・アドバイス等頂けませんでしょうか。
◆試したこと・調査状況
・サーバー側
netcat -luv 8011
・クライアント側
netcat -u {VPSのグローバルIP} 8011 abc
・パケット確認
tcpdump udp and port 8011
23:14:52.835296 IP {自宅PCのグローバルIP}.55273 > {VPSのグローバルIP}.8011: UDP, length 4
と表示されており、udpのpacketは届いている様子・・・?
だが、netcat -luv 8011で待ち受けているコンソールには何もメッセージが表示されない。
・サーバー内部で確認
udp待ち受けをしているのとは別途sshをもう1窓起動し、
クライアント側の以下のコマンドを実行したところ、
想定通り「abc」のメッセージが受信側のコンソールに表示されることを確認しました。
内部でのnetcat udpは想定通り動作しますが、外部からの場合に問題が発生するようです。
netcat -u {localhost または VPSのグローバルIP または 0.0.0.0} 8011 abc
また、この時 tcpdump udp and port 8011 -i lo を確認したところ、packetが表示されました。
外部からのudp packetは -i ens3というネットワークデバイスで確認でき、
内部は -i lo で確認できた状況です。
・udpではなくtcpで試行
udp用に準備したポート8011と同様の手順でtcpポート8012を開放し、
同様の手順でnetcatによる疎通確認を試した。
・サーバー側
netcat -lv 8012
・クライアント側
netcat -u {VPSのグローバルIP} 8012 abc
tcpでは期待通り、サーバー側のコンソールにabcと表示された。
◆環境
・サーバー側
Ubuntu16.04(さくらのVPS)
・クライアント側
macOS Catalina 10.15.7
・ポート開放について
さくらVPSを利用しているのですが、ブラウザからさくらのVPSコンソールにアクセスして
「パケットフィルタ」を用いて下記のポートを開放しています。
・udp 8011
・tcp 8012 (検証用に開放)
サーバー側のファイアーウォールの設定は、
ufw, iptables, firewalldが無効になっていることを確認しました。
回答1件
あなたの回答
tips
プレビュー