通常,办公环境的电脑无法直接连接到开发测试服务器,往往需要进行多次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来启动服务。

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

  1. linux系统管理与服务器配置高志君_如何在 Linux 上安装、配置 NTP 服务器和客户端?...

    你也许听说过这个词很多次或者你可能已经在使用它了.在这篇文章中我将会清晰的告诉你 NTP 服务器和客户端的安装. -- Magesh Maruthamuthu 你也许听说过这个词很多次或者你可能已经在 ...

  2. linux添加cfg,Linux安装详解-配置ks.cfg实现自动安装过程

    Linux安装详解-配置ks.cfg实现自动安装过程 之前发过一篇关于通过PXE实现Linux批量无人值守自动安装的文章(可以参考),不过写的只是具体的配置和操作,对于原理部分没有说明,最近通过一段时 ...

  3. linux 11G R2 RAC 配置NTP服务器

    11G RAC 配置NTP服务器tip01的IP:162.20.1.228 NTP服务端 tip02的IP:162.20.1.229 NTP客户端配置NTP服务器之前,确认服务器已装好NTP包[roo ...

  4. linux webdav服务,Ubuntu 配置WebDav服务器

    什么是WebDAV? 简单地说:"基于Web的分布式创作和版本"的WebDAV.它是HTTP协议,它允许用户协作编辑和管理远程Web服务器上的文件的扩展.听说苹果的icloud 也 ...

  5. Mac添加ssh config配置,快速登录Linux系统

    shell中到根目录下.ssh文件夹 cd ~/.ssh/ 生成密钥(已经生成过的跳过这一步,gitlab等都需要的) ssh-keygen 创建配置文件 vim config 写入以下命令到conf ...

  6. 全国战争linux添加eth0,linux服务器双线路接入配置

    linux服务器双线路接入配置 现在有两个专线外接进来分别是移动IP:218.204.242.XXX和电信IP:124.172.245.XXX 服务器的地址eth0和eth1的地址分别是:移动IP:2 ...

  7. linux centos命令行配置web,linux centOS下怎么配置web服务器

    下是我在配置web服务时作的一些记录,高手飘开或者看了指点一下,不胜感激,第一次配置,很多细节需要自己优化. 适合环境:万网翔云I独享主机 ============================== ...

  8. linux添加nginx,linux下安装Nginx1.16.0的教程详解

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 ? 创 ...

  9. 深度linux添加xp,Linux和Windos XP下向路由表添加路由

    Linux和Windos XP下向路由表添加路由 查看Linux服务器的路由表:netstat -r 和 route -e 添加默认的路由:route add default gw X.X.X.X(下 ...

  10. 深度linux添加xp,Linux和Windos XP下向路由表添加路由

    Centos 5.4 x64 查看Linux服务器的路由表:netstat -r  和  route -e 添加默认的路由:route add default gw X.X.X.X(下一跳路由器地址) ...

最新文章

  1. 进大厂全靠自学,微软头条实习生现身说法:我是这样自学深度学习的丨课程传送门...
  2. 家用路由器支持组播吗_组播分布树及其转发模式
  3. 理解工作流系统参考模型
  4. linux安装日志切割程序
  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
  6. 《C#与.net高级编程》——第一支柱:C#的封装
  7. Jmeter BeanShell取样器操作变量(一)
  8. Android Day05-网络编程之文件下载之多线程断点续传技术
  9. Java 11 将至,不妨了解一下 Oracle JDK 之外的版本
  10. 如何给企业选择一款ERP系统
  11. web前端开发初学者必看的学习路线图课程内容分享
  12. ubuntu设置python3.7为默认(python版本切换)
  13. 苹果无法安装计算机,苹果电脑安装win7报错误,代码状态0xc0000428,信息:windows无法验证此文件的数字签名,applessd.sys...
  14. 白话区块链 之1: 为什么账本要这么记?
  15. Uva - 816 - Abbott's Revenge
  16. html如何改成花体英文字体,花体英文转换器可复制字体(附花体字发文技巧)...
  17. php语音机器人,php运营版语音机器人接单源代码带完美教程
  18. echarts图表主题--马卡龙macarons--自己配置主题颜色
  19. [BUGKU] [MISC]普通的二维码
  20. 成都计算机系统维护专业中专,成都计算机应用专业中专招生简章

热门文章

  1. weekend110(Hadoop)的 第七天笔记
  2. matlab按行读文件
  3. PLSQL复合变量与参照变量
  4. TED如何和压力做朋友(第三天)
  5. 【观点讨论与支撑】读书到底有没有用?
  6. VC++如何计算一段代码的执行时间
  7. 2021如何运行带flash的html,2021年Flash被禁用后继续使用的方法
  8. 数据结构与算法笔记一:稀疏数组的应用
  9. OPPO 实时数仓揭秘:从顶层设计实现离线与实时的平滑迁移
  10. 继续南山聊代码!Apache Kafka × Apache Flink Meetup · 深圳站