@FubiraiHan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

TCP通信をする際のポート開放について

Q&A

Closed

windows11のパソコン内にhttpサーバーをc++で作ったので、インターネットから接続できるようにポート開放をしようとしましたがうまくいきません。
windowsのファイアウォールの設定と、ルーターがポートを通すようにフォワーディングの設定を行いましたが、サーバーにブラウザから接続できません。
Test-NetConnectionの結果は以下のとおりです。

(base) PS C:\Users\aaa> Test-NetConnection MYGLOBAL_IP -port 8690
警告: TCP connect to (MYGLOBAL_IP : 8690) failed


ComputerName           : MYGLOBAL_IP
RemoteAddress          : MYGLOBAL_IP
RemotePort             : 8690
InterfaceAlias         : イーサネット
SourceAddress          : 192.168.0.13
PingSucceeded          : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : False

パソコン自体のipアドレスは固定してあります。
lan内での接続(ブラウザでのhttp://192.168.0.13:8690を使ったサーバー接続)はうまくいっています。
また、リソースモニターでもサーバー自体がリッスンしていること、ファイアウォールの状態が許可、制限なしになっていること、他に同じポート番号を使ってリッスンしているものがないことが確認できています。

手を尽くしたのですがさっぱりわからないのでどうすればいいか教えていただきたいです。

0 likes

4Answer

解決策ではありませんが、調査方法としてポート解放を以下サイトからチェックできますので情報として記載させて頂きます。(テスト方法の問題か、実際にポートが開いていないのかが切り分けられると思います。)

0Like

Comments

  1. @FubiraiHan

    Questioner

    ありがとうございます。
    調べてみたところ実際にポートが空いていないようです。

ルーターのWAN側IPアドレスになんて書いてあるか分かりますか?
10.xx.xx.xxのように10から始まっているとローカルIPアドレスを振られているのでいくらポート開放しても外部から接続することはできません
契約プロバイダ名 ポート開放で検索すればおそらく無理だと書かれてるかと

0Like

Comments

  1. @FubiraiHan

    Questioner

    回答ありがとうございます。
    ルーターの設定ページに書いてあるものは10から始まっておらず、ウェブサービスで調べたものも設定と同じipアドレスで問題なさそうでした。
    ただ
    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14299300514
    にはソフトによって外部ipアドレスの表示に違いがあるようなので、自分がwan側ipだと思っているアドレスが本とは違う可能性があるのでシェアードアドレスかどうかちょっと不安ではあります

パソコンのIPアドレスを固定しているとのことですが、それはどちらかというとどうでも良くて、まず、ルーターのWAN側IPアドレスが固定になっているかどうか。外部からLAN内のパソコンに接続するときには、このWAN側IPアドレスを指定することになります。一般的なサービスでは、これはルーターがプロバイダーに接続するごとにプロバイダーが決めるので、いつも同じではありません。固定IPアドレスオプションといったものを契約していれば、これを固定の(自分専用の)IPアドレスにすることができます。ただ、これも、WAN側IPアドレスが毎回わかりさえするならば、固定する必要はありません。(まあ固定であるほうが何かと都合は良いと思います)。

で、ここが本題ですが、WAN側IPアドレスに対する通信を、LAN内のどの機器に送るかは、ルーターの設定になります。NAT、IPマスカレード、 WAN→LAN中継設定、などの機能がルーターにあると思います。どのような設定をされていますか?
これはルーターによるので、ルーターのマニュアルをよく読んでみてください。

「LAN内のどの機器に送るか」の設定で、対象のパソコンのIPアドレスを固定する必要はあるかもしれません。

0Like

Comments

  1. @FubiraiHan

    Questioner

    回答ありがとうございます。
    ルーターの(ポート)フォワーディングの設定をしていましたが、もう一度確認すると有効化するのを忘れていました。有効化するとウェブページに接続することができました。ありがとうございました。
    ただ、Test-NetConnectionについては有効化した後も失敗したままだったのですが、Test-NetConnectionは単にtcpのリクエストを投げているだけではないのでしょうか。

  2. Test-NetConnection の件ですが、外部からでも同じですか?LAN内からではポートフォワーディングが効かないとか?

↑ ここで見えるアドレスがインターネットから見えるグローバルIPアドレスです。
期待通りのアドレスでしょうか。

0Like

Your answer might help someone💌