質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

4751閲覧

UDP疎通確認のためのnetcatでメッセージが受信できず困っています

Purindle

総合スコア7

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2020/12/28 15:02

編集2020/12/30 04:51

◆やりたいこと・困っていること

  1. サーバー側でnetcatを利用してudp port:8011で待ち受け
  2. クライアント側からnetcatを利用してudpでメッセージ送信(仮に文字列「abc」を送信)
  3. サーバー側でメッセージ「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が無効になっていることを確認しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A_kirisaki

2020/12/30 06:39

ufw disable で無効化しましたか?Ubuntu 20.04 以外同様の環境で試したところ成功しました。
Purindle

2020/12/30 11:09

ご質問ありがとうございます。 sudo ufw status で「状態: 非アクティブ」となっていることを確認した上でのことなのですが、 念のため、sudo ufw disable を実行した後、再確認致しました。 残念ながら、状況変わらずでした。。
guest

回答1

0

自己解決

rebootしたら解決しました。

ufwは「非アクティブ」となっていることは確認していましたが、実はアクティブとなっており、
再起動したことで非アクティブが適用されて解決したようです。

投稿2020/12/31 07:38

Purindle

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問