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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

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

VPS

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

Q&A

解決済

1回答

712閲覧

[VPS(KVM)] ポート49152が開放できない。python / お名前.com / Centos8 Stream

stakezo

総合スコア43

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

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

VPS

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

0グッド

0クリップ

投稿2022/06/22 19:41

よろしくお願いします。どんな些細なことでもかまいません。助かります。


ポート開放について「家のPC①⇔ルータ②⇔お名前.comのIPセキュリティ③⇔Centos8のファイアウォール④」と、4つくらいポート開放するには触るところがあると思うのですが、解決できず・・お力を貸していただければ幸いです。
かつて、PostgreSQLのポート開放が~~と同じような質問をし、解決した過去があります。




私は、お名前.com の VPS(KVM) を契約して、 Centos8 Stream(以下サーバ) を利用しています。
以下のpython のプログラムを

 グローバルIPのサーバ <----> 私が持っているパソコン

で上手く動かすことが出来ず困っています。

# サーバ側 ======================================================== import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('0.0.0.0', 49152)) # IPとポート号を指定します s.listen(5) while True: clientsocket, address = s.accept() print(f"Connection from {address} has been established!") clientsocket.send(bytes("Welcome to the server!", 'utf-8')) clientsocket.close()
# クライアント側 ======================================================== import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('123.45.67.89', 49152)) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) msg = s.recv(1024) print(msg.decode("utf-8"))

 
これらのプログラムは、127.0.0.1 の自分自身や、192.168.0.n のLAN内では、通信が成功し、クライアント側に「Welcome to the server!」が返ってきます。
イメージ説明



サーバ側では、ポート49152を開放するために、Firewall と、 IPセキュリティの2つを設定しています。

※サーバ側 [root@v123-45-67-89 html]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: cockpit dhcpv6-client http https ssh ports: 80/tcp 10022/tcp 5432/tcp 49152/tcp protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

お名前.com の 「VPS(KVM)サーバーコントロールパネル」より
IPセキュリティ > セキュリティグループに「port49152」を追加、反映し、サーバ再起動を行いました。
イメージ説明

サーバ側の操作は、私が持っているパソコンで、Tera Term 経由で接続しています。

サーバ側で python は動くことを確認しています。

# test.py print('test') # 起動例と出力例 # $ python3.6 test.py # test

 


クライアント側では、Windows Firewall で、送信側のポート49153を開放しました。
イメージ説明
127.0.0.1でのテストについて、このFirewallの設定を削除すると、繋がらなくなり、設定するとつながるようになる、という変化を確認しています。
そして、ルーターのポートも開放しています。
イメージ説明
49152のみ開放したいのですが、左右同値だとエラーで設定できず。やむを得ずこの設定にしています。
イメージ説明


以上です、ポートの開放にまつわる作業が昔から苦手で上手く行かないです。
もし、解決法や、参考になるような文献をお知りの方は、ご教授よろしくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決いたしました。
お名前.comのIPセキュリティ漏れでした。
質問の画像のように、49152のポートを設定したあと、「実行」する手続きが漏れていました。
イメージ説明
ここに、先程設定した「chart_python」を設定し、再起動をしましたら、無事、接続する反応が帰ってきました!
イメージ説明

無事解決が出来て良かったのですが、一つ悩みがあります。ネットワーク系はこのようなトラブルになったときに、どこの箇所で通信にトラブルが起こっているのか特定するのが下手です。今回も偶然見つけました。精進します。
お騒がせいたしました。

投稿2022/06/22 20:29

stakezo

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問