ポートフォワーディングの設定をした

updated: 2017-05-20

外出先から自宅のネットワークに繋ぎたいことがあるので,ポートフォワーディングの設定をした.

インターネットにある VPS を中継して自宅に繋ぐ設定になった.

今回のポイントはポートフォワーディングと多段 SSH の省略の 2 つである.

ポートフォワーディングは,あるコンピューターのポート (IP アドレスを 100.50.150.3,ポートを 30001 とする) を別のポート (IP アドレス: 185.123.144.2, ポート:50001) へ転送するものである.

通常,ポートフォワーディングは手元のコンピューターのポートを別のコンピューターのポートへの転送を設定するものだ.つまり手元のコンピューターのポートへ接続すると,別のコンピューターへ繋がる.

しかし今回は逆ポートフォワーディングというものを用い,別のコンピューターの指定ポート (IP アドレス:110.120.130.4,ポート:10203) へ接続すると手元のコンピューターのポート (IP アドレス:140.150.160.5,ポート:40506) へ繋がる設定をした.具体的な実行コマンドは ssh を用いて以下のようになった.このコマンドは手元のコンピューター (IP アドレス:140.150.160.5) で実行する.

ssh 110.120.130.4 -R 10203:localhost:40506

多段 SSH の省略についてはそのうち書く.

また,ssh_config のファイルのメモを以下に

.ssh/config in target_machine ---------------

Host relay_server
    HostName aaa.bbb.ccc.ddd           # relay_server_address
    Port XXX                           # relay_server_ssh_port
    User usrname_for_relay             # username_for_relay_server
    RemoteForward YYY localhost:ZZZ    # relay's port YYY is forwarded to localhost:ZZZ

    RequestTTY no                      # option(not needed)
    PasswordAuthentication no          # option(not needed)
    ServerAliveInterval 60             # option(not needed)

.ssh/config in local_machine ---------------

Host target_server
    HostName hogefuga                  # not needed
    User usrname_for_target
    ProxyCommand ssh -W localhost:YYY aaa.bbb.ccc.ddd -p XXX

On above-settings,
in target_machine
    $ ssh relay_server
    
then in local_machine
    $ ssh target_server