Skip to content
Eternal Center

Eternal Center

  • Single-Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi-Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Approach (方式方法)
    • Languages (语言)
    • Ideas (思路)
    • Programing (编程)
    • Project (项目)
  • Eternity (永恒)
    • News (消息)
    • Creations (创作)
    • Classics (经典)
    • Legends (传说)
    • Chronicle (编年史)
    • FNIOS (宇宙公民开源学院)
Posted on February 4, 2021July 9, 2023 by Mingyu Zhu

[实验] Linux SSH 内网穿透

  • 步骤一:规划拓扑
    • 1.1 服务器列表
    • 1.2 拓扑图
    • 1.3 拓扑图简介
  • 步骤二:系统环境要求
  • 步骤三:创建用于 SSH 内网穿透的用户
    • 3.1 创建用于 SSH 内网穿透的用户
    • 3.2 给用于 SSH 内网穿透的用户设置密码
  • 步骤四:创建用于内 SSH 内网穿透的 SSH 密钥
    • 4.1 进入到用户
    • 4.2 创建用于内 SSH 内网穿透的 SSH 密钥
    • 4.3 退出用户
  • 步骤五:让内网服务器可以无密码访问外网服务器
    • 5.1 进入到用户
    • 5.2 将内网服务器的公钥拷贝到外网服务器
    • 5.3 退出用户
  • 步骤六:让外网服务器可以无密码访问自己
    • 6.1 进入到用户
    • 6.2 将内网服务器的公钥拷贝到外网服务器
    • 6.3 退出用户
  • 步骤七:实现内网服务器到外网服务器的 SSH 内网穿透
    • 7.1 实现内网服务器到外网服务器的 SSH 通道
    • 7.2 实现外网服务器 SSH 端口的影射
  • 步骤八:客户端电脑使用 SSH 外网穿透

步骤一:规划拓扑

1.1 服务器列表

客户端电脑
外网服务器
内网服务器

1.2 拓扑图

客户端电脑 外网服务器 内网服务器

1.3 拓扑图简介

内网服务器建立到外网服务器的 SSH 通道
客户端电脑通过 SSH 外网服务器连接到内网服务器
内网服务器就算没有公网 IP 地址也能被 SSH 上

步骤二:系统环境要求

1) 所有服务器的系统都需要是 Linux 版本
2) 所有服务器都要关闭防火墙
3) 内网服务器要能够 ping 通外网服务器
4) 客户端电脑要能够 ping 通外网服务器

步骤三:创建用于 SSH 内网穿透的用户

3.1 创建用于 SSH 内网穿透的用户

(分别在内网服务器和外网服务器上执行以下步骤)

# useradd <user for intranet penetration>

3.2 给用于 SSH 内网穿透的用户设置密码

(分别在内网服务器和外网服务器上执行以下步骤)

# passwd <user for intranet penetration>

步骤四:创建用于内 SSH 内网穿透的 SSH 密钥

4.1 进入到用户

(分别在内网服务器和外网服务器上执行以下步骤)

# su - <user for intranet penetration>

4.2 创建用于内 SSH 内网穿透的 SSH 密钥

(分别在内网服务器和外网服务器上执行以下步骤)

$ ssh-keygen

4.3 退出用户

(分别在内网服务器和外网服务器上执行以下步骤)

$ exit

步骤五:让内网服务器可以无密码访问外网服务器

5.1 进入到用户

(只在内网服务器上执行以下步骤)

# su - <user for intranet penetration>

5.2 将内网服务器的公钥拷贝到外网服务器

(只在内网服务器上执行以下步骤)

$ ssh-copy-id <IP address of Internet server>

5.3 退出用户

(只在内网服务器上执行以下步骤)

$ exit

步骤六:让外网服务器可以无密码访问自己

6.1 进入到用户

(只在外网服务器上执行以下步骤)

# su - <user for intranet penetration>

6.2 将内网服务器的公钥拷贝到外网服务器

(只在外网服务器上执行以下步骤)

$ ssh-copy-id 127.0.0.1

6.3 退出用户

(只在外网服务器上执行以下步骤)

$ exit

步骤七:实现内网服务器到外网服务器的 SSH 内网穿透

7.1 实现内网服务器到外网服务器的 SSH 通道

# su - <user for intranet penetration>
$ ssh -X -fCNR 11000:localhost:22 <IP address of Internet server>

(补充:这里以使用用于内网穿透的用户将内网服务器的 22 端口影射到外网服务器的 11000 端口为例)

(
注意:如果在内网服务器和外网服务器上创建的用于 SSH 内网穿透的用户名称不一样,则需要在最后 SSH 时添加上外网服务器上用于 SSH 的用户名

# su - <user for intranet penetration>
$ ssh -X -fCNR 11000:localhost:22 <user for intranet penetration>@<IP address of Internet server>

)

或者:

# ps -aux | grep -v grep | grep "11000:localhost:22 <IP address of Internet server>" &> /dev/null || su - <user for intranet penetration> -c 'ssh -X -fCNR 11000:localhost:22 <IP address of Internet server>'

(
注意:如果在内网服务器和外网服务器上创建的用于 SSH 内网穿透的用户名称不一样,则需要在最后 SSH 时添加上外网服务器上用于 SSH 的用户名

# ps -aux | grep -v grep | grep "11000:localhost:22 <IP address of Internet server>" &> /dev/null || su - <user for intranet penetration> -c 'ssh -X -fCNR 11000:localhost:22 <user for intranet penetration>@<IP address of Internet server>'

)

(补充:这里以使用用于内网穿透的用户将内网服务器的 22 端口影射到外网服务器的 11000 端口为例)

7.2 实现外网服务器 SSH 端口的影射

# su - <user for intranet penetration>
$ ssh -X -fCNL *:10000:localhost:11000 localhost

或者:

# ps -aux | grep -v grep | grep "*:10000:localhost:11000 localhost" || su - <user for intranet penetration> -c 'ssh -X -fCNL *:10000:localhost:11000 localhost'

(补充:这里以使用用于内网穿透的用户将外网服务器的 10000 端口影射到外网服务器的 11000 端口为例)

步骤八:客户端电脑使用 SSH 外网穿透

# ssh -p 10000 <user for intranet penetration>@<IP address of Internet server>

(补充:SSH 成功后,客户端电脑就可以直接 SSH 到内网服务器中了)

CategoriesChinese Post (中文帖子), System (系统), System Login Security (系统登录安全), System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志), System Operation (系统操作), System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件), System Operation Others (系统操作其它), System Security (系统安全)

Post navigation

Previous PostPrevious [步骤] 软件源的设置 (openSUSE 版) (本地镜像版)
Next PostNext [工具] Shell 批量设置官方软件源 (openSUSE Leap 15.2 版)

Aspiration (愿景):

Everyone can achieve self-achievement and self-happiness fairly

每个人都能公平地实现自我成就和自我幸福

Logo (徽标):

Additional Information (其他信息):

About     Manual     Clone     Contact
Disclaimer     Friendly Links     Donation

关于     手册     克隆     联系
免责声明     友情链接     捐赠

Search Inside Website (站内搜索)

Search Outside Website (站外搜索):

Google         Wikipedia         Bing

Eternal URL (永恒网址):

https://eternity.eternalcenter.com Will be last access method / 将是最后的访问方式

Proudly powered by LNMP Proudly powered by WordPress