質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.49%

docker for macosで立ち上げているcentOS7に外部からssh接続したい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,007

score 7

centOSから外部にpingはできます

[root@7971df01d10c /]# ping google.com
PING google.com (172.217.161.46) 56(84) bytes of data.
64 bytes from nrt12s23-in-f14.1e100.net (172.217.161.46): icmp_seq=1 ttl=37 time=36.2 ms
64 bytes from nrt12s23-in-f14.1e100.net (172.217.161.46): icmp_seq=2 ttl=37 time=59.0 ms
64 bytes from nrt12s23-in-f14.1e100.net (172.217.161.46): icmp_seq=3 ttl=37 time=29.0 ms
64 bytes from nrt12s23-in-f14.1e100.net (172.217.161.46): icmp_seq=4 ttl=37 time=717 ms
64 bytes from nrt12s23-in-f14.1e100.net (172.217.161.46): icmp_seq=5 ttl=37 time=60.6 ms


ローカルにpingも通ります

[root@7971df01d10c /]# ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.062 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.062 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.042 ms
64 bytes from 172.17.0.2: icmp_seq=5 ttl=64 time=0.062 ms
64 bytes from 172.17.0.2: icmp_seq=6 ttl=64 time=0.063 ms


ip aを打った時はこんな感じです

[root@7971df01d10c /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    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
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1
    link/tunnel6 :: brd ::
6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever


外部からssh接続を試みた時はこのように表示されます

ssh: connect to host 172.17.0.2 port 22: Network is unreachable


外部からのPing

ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
36 bytes from 60.47.170.89: Destination Host Unreachable
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 5400 46e1   0 0000  3c  01 7c24 10.13.204.27  172.17.0.2 
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

ホストからコンテナに接続するときはポートフォワードするため、接続先IPは172.17.0.2ではなく127.0.0.1になるはずです。

参考
Docker for Macで開発環境を構築してみた

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

check解決した方法

0

外部からのSSH接続がうまくできなかったのは学校側のネットワーク設定で無線ではSSH接続ができないようになっていたことでした。さらに『nmtui』コマンドでのIPアドレス設定ができていなかったのも原因です。

そもそもSSH接続の目的としては一つのサーバーをチームで制作するために必要だったという感じです。

回答が大幅に遅れてすいません。まだサーバー構築の初心者で何が分からないのか、分からないと言った状況で質問も意味不明になってしまいました。回答者の方には色々迷惑をかけて申し訳なかったです。回答ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

うーん、どこから説明すればいいやら。
以下の条件が満たされていると仮定。

  1. 172.217.161.46 がDockerが動作しているホストOSのアドレスである。
  2. インタネット側から172.217.161.46へsshでログインできること。
  3. Docker側でsshが適当に設定されていること(起動しているとか、鍵ペアが適切に設定されているとか。)

Dockerをport fowardingを有効にして上げる

まず、Dockerコンテナ側で動作しているSSH(TCP/21)をホストOSの適当なポート(例えばTCP/7021)へport fowardingするように起動。

$ docker run --name hogehoge -d -p 7021:21 containar_name

インタネット側の環境から172.217.161.46にsshトンネルを作成

$ ssh -L 9999:localhost:7021 172.217.161.46

いま作成したトンネルに向けてssh

$ ssh -p 9999 localhost

pingが通ることとsshが通ることは関係がありません。
アドレスあたりは適当に読み替えてください。
172.17.0.2はプライベートアドレスだからLAN外では意味がないアドレスです。

うーむ、Docker全然関係ないですね。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/11/15 17:35

    sshトンネルを作成は必要なくないですか?
    ssh -p 7021 localhost
    の方が分かりやすいです。

    キャンセル

  • 2019/11/15 17:37

    インタネットからDockerコンテナへのsshですからねぇ。
    トンネルはいるんじゃないかな。ポートがあいてりゃ別ですが。

    キャンセル

  • 2019/11/15 17:44

    前提をインターネットからにする理由があるんですかね...
    docker for macosにインターネット越しから?
    まあお任せします...

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る