質問: CentOS7のサーバー構築をしています。 IPアドレスを固定にするため、イーサネットの設定を変更し、現状`ip addr`するとこんな感じです。(一部伏せます) ``` 1: lo: mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp8s0f0: mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:--:--:--:--:-- brd ff:ff:ff:ff:ff:ff inet ”設定したIP”/32 brd ”設定したIP” scope global 接続名 valid_lft forever preferred_lft forever inet6 ----::---:----:----:----/64 scope link valid_lft forever preferred_lft forever ``` これで、sshd_configで一時的にPasswordAuthenticationをyesにし、 ``` firewall-cmd --add-port=22/tcp --zone=public --permanent ``` を実行し、 ``` firewall-cmd --reload systemctl restart NetworkManager systemctl restart network systemctl restart sshd ``` して、外部からsshしてみると、Connection timed outします。 ポートは開いています。 ``` [----@---- ~]$ ss -tln State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* ``` サーバーと同じLAN内からアクセスすると、普通に接続できます。 ということはこれはローカルアドレスなんですか? 外部からもsshで接続したいのですが、いまいちどうすればいいかわかりません。 知識不足ですみませんがよろしくお願いします。
回答: プライベートアドレスで運用しているサーバにインターネット越しにsshしたいということだと思います。やり方はお使いのネットワーク構成によっていろいろ方法がありえる、が正解となります。 例えばサーバが自宅やオフィスにあり、ブロードバンドルータでインターネットに接続しているとします。ブロードバンドルータはWAN側(インターネット側)にグローバルIP、LAN側にプライベートIPが付いており、サーバもそのLAN側にあるとします。このとき、ブロードバンドルータにあるポート転送の機能を使うことで、グローバルIPの22番(SSH)に接続してきたパケットをLAN側のサーバの22番に転送する、ということが可能です。(私の知る限りよほど変なルータでない限りはこの機能が付いてます)。 これを実現するためには、WAN側のアドレスを知る必要があります。ルータの管理画面のどこかに表示されているはずですので、調べてみてください。ポート転送機能もルータの管理画面から設定しますが、製品によっては「ゲームサーバ機能」「ポートフォワード機能」など呼び方は様々ですので、まずは管理画面を見てみてください。 あと、まれにプロバイダによってはWAN側がプライベートIPになっている場合があります。この場合は外部からのポート転送はできませんのでご注意ください。