【自宅サーバ】グローバルIPで自宅サーバにSSH接続する方法

グローバルIPで内部LANではなく外部から自宅サーバにSSH接続するための確認事項をまとめましたので、参考までに。

ちなみに私の場合は以下の環境となっています。
自宅サーバ:Linux(CentOS7)
ルータ:ひかり電話ルータ(PR-400NE)
SSH接続クライアント:JuiceSSH

※予め、自宅サーバのローカルIPは固定しておいてください。

グローバルIPを確認

自宅サーバが設置してある環境のグローバルIPを事前に確認しておきましょう。
ここからグローバルIPを確認できます。

自宅サーバにOpenSSHが導入されているか確認

自宅サーバにOpenSSHがインストールされているかを確認します。
# yum list installed | grep ssh

もし、openssh-serverがなかったら
# yum -y install openssh-server
でOpenSSHをインストールします。

自宅サーバのOpenSSHの設定を確認

自宅サーバのOpenSSHの設定を確認します。
# vi /etc/ssh/sshd_config

そして、SSHのポートが何番になっているかを確認します。通常は
#Port 22
となっているはずなので、この場合はそのままデフォルトの22番ポートでOKです。
もし、Portのコメントが外れていたら、そのポート番号を覚えておいてください。

自宅サーバのOpenSSHが起動しているか確認

OpenSSHが起動しているか確認します。
# systemctl status sshd

これで、Active: active (running)となっていなかったら
# systemctl start sshd
で、OpenSSHを起動します。

自宅サーバのファイアウォールを確認

一応、ファイアウォールを確認します。
# firewall-cmd --list-all

servicesの一覧にsshが追加されているのを確認します。

もし、sshが存在しなかったら
# firewall-cmd --permanent --add-service=ssh
で追加します。

ルータのポート開放設定を確認

ルータのポートが解放されているか確認します。
人によってルータが異なるので一概に言えませんが、基本的には「静的IPマスカレード」を設定します。
以下、PR-400NE(ファームウェア8.04)の場合です。

ブラウザにルータのローカルIPを入力し、ルータの管理画面に入ります。
私の場合は「192.168.1.1」がルータのローカルIPです。
ルータの管理画面に入ったら「詳細設定」の「静的IPマスカレード設定」を選びます。

「NATエントリ」に以下の設定の項目が存在し、チェックが付いているか確認します。
変換対象プロトコル:TCP
変換対象ポート:3で確認したSSHのポート番号(デフォルトは22)
宛先アドレス:自宅サーバのローカルIP
宛先ポート:変換対象ポートと同じ

存在しチェックが付いていたらルータの自宅サーバへのSSHポートは解放されています。

もしなかったら空いている蘭の「編集」を選択します。

「NATエントリ編集」で以下の様に入力し、「設定」ボタンを押します。
変換対象プロトコル:TCP
変換対象ポート:3で確認したSSHのポート番号(デフォルトは22)
宛先アドレス:自宅サーバのローカルIP

設定したら、左のほうにあるチェックボックスにチェックを入れ、「設定」を押します。

最後に、変更を保存します。

これで、ルータの自宅サーバへのSSHポートは解放されました。

グローバルIPで自宅サーバに接続!

1~6までの項目が確認出来たら、1で確認したグローバルIPで自宅サーバに接続できる様になっているはずです。
コマンドから接続する場合は
# ssh ユーザ名@グローバルIP
こんな感じで接続できるはずです。

ちなみにですが、内部LANのクライアントからはグローバルIPでSSH接続出来ないので注意してください。
内部LANのクライアントでグローバルIPで接続したい場合、クライアント毎にhostsを設定しなければいけません。

お疲れ様でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です