linux添加隧道,linux配置多级服务器登录和隧道映射

本文介绍如何配置SSH自动跳转和免密登录,以便在办公环境中高效地通过A服务器访问B服务器。通过编辑~/.ssh/config实现多级服务器连接,并演示如何建立SSH隧道以访问远程服务和使用systemd确保隧道持久运行。
摘要由CSDN通过智能技术生成

通常,办公环境的电脑无法直接连接到开发测试服务器,往往需要进行多次ssh跳转。这时可通过配置ssh支持自动跳转登录功能。假设有2台服务器A和B在我们的开发测试环境中,本地我们只能连接到A服务器,而A服务器可以连接到B服务器。编辑~/.ssh/config文件,输入下列内容:

Host serverA

User root

HostName 10.1.2.3

IdentityFile /home/myusername/.ssh/id_rsa

Port 22

Host serverB

User root

HostName 192.168.1.3

IdentityFile /home/myusername/.ssh/id_rsa

port 22

ProxyJump mypub

此时,在本地即可通过ssh serverB直接连接到服务器B的ssh服务。如果要使用免密方式进行登录。则需要执行ssh-copy-id root@serverA和ssh-copy-id root@serverB进行配置免密。

在进行了这样的配置之后,我们也可以更加方便的建立隧道来使用了。比如在服务器上有一个8080的http服务,想要在本地浏览器里访问。那么,可以执行下列命令建立隧道:

ssh -Nf -Llocalhost:8080:192.168.1.3:8080 serverB

此命令会将serverB上的8080端口映射到本地的8080端口上,在浏览器中我们只需要输入http://localhost:8080可以访问到serverB上的web服务。

同样,也可以通过-R选项将本地端口映射到serverB的某个端口上,比如在微信公众号开发测试的时候,可以将配置在公众平台的服务器地址上的服务映射到本地。

为了避免网络连接中断导致隧道断开连接,可以使用systemd来保活,隧道进程退出后自动将其拉起:

# cat /lib/systemd/system//my-http-proxy.service

[Unit]

Describe=Kmr nginx agent

After=network.target

[Service]

LimitNOFILE=10000

Type=simple

User=root

Group=root

ExecStart=/usr/bin/ssh -oExitOnForwardFailure=yes -oPubkeyAuthentication=yes -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oServerAliveInterval=5 -oServerAliveCountMax=3 -Llocalhost:8080:localhost:8080 -N root@serverB

Restart = always

RestartSec = 1s

StartLimitInterval = 0

[Install]

WantedBy=network.target

执行systemctl daemon-reload和systemctl start my-http-proxy来启动服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值