よろしくお願いします。どんな些細なことでもかまいません。助かります。
ポート開放について「家の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のみ開放したいのですが、左右同値だとエラーで設定できず。やむを得ずこの設定にしています。
以上です、ポートの開放にまつわる作業が昔から苦手で上手く行かないです。
もし、解決法や、参考になるような文献をお知りの方は、ご教授よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。