我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SSH端口转发实现内网穿透的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SSH端口转发实现内网穿透的实现

我们局域网的机器能够访问外网,但是外网不能访问内网。因为内网访问互联网时候能确定外网的地址,外网却不能确定我们局域网内的具体地址。(ip地址有限)如果 我们在访问外网的时候,这个链接让他保持、不断,那么这个链接就相当于我们建了一条路,内网数据能出去,外网数据能进来,ssh也是这个方法。

使用ssh命令链接公网服务器

1、首先在外网服务器上编辑sshd的配置文件


vim /etc/ssh/sshd_config
#将GatewayPorts 开关打开
GatewayPorts yes
重启sshd服务,使用修改生效(linux 版本不同命令可能会有差异)
systemctl restart sshd 

2、命令


ssh -NTf -R <local-host>:<local-port>:<remote -host>:<remote-port> user@host

local-host 可省略
例如:ssh -NTf -R 8888:127.0.0.1:8080 root@host

3、参数说明

-C 允许压缩数据
-f 后台运行
-N 表示只连接远程主机,不打开远程shell
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理
-T 不为这个连接分配TTY
-NT 代表这个SSH连接只用来传数据,不执行远程操作

保持ssh链接不断开

通常我们使用ssh 链接服务器的时候,如果长时间不操作,这个链接是会关闭的。

方法一、设置客户端

1)用户级别的设置


vim ~/.ssh/config(如果没有config创建一个)

2)全局设置


/etc/ssh/ssh_config

选择其中一个就可以,添加下面参数


#每隔60秒向服务器发送一个空包
ServerAliveInterval 60
#如果超过两次没成功就断开
ServerAliveCountMax 2
#转发失败后退出,便于重建连接
ExitOnForwardFailure yes 

临时写法(推荐,不影响他人)


ssh -o ServerAliveInterval=30 root@host
ssh -NTf -R 8888:127.0.0.1:8080 root@host -o ServerAliveInterval=30 -o ServerAliveCountMax=2

方法二、设置服务器端


vim /etc/ssh/sshd_config
#每隔30秒,服务器端向客户端发送心跳
ClientAliveInterval 30
#3次心跳无响应之后,会认为Client已经断开
ClientAliveCountMax 3

方法三、使用shell脚本


touch myAutoSSH.sh
因为我设置ssh连接是rsa免密认证,所以这里逻辑就不需要密码 

ssh免密登录方法


while(1)
do
  ssh -NTR <local-host>:<local-port>:<remote -host>:<remote-port> user@host
done

保证断开后立马就能连上把-f参数去掉 否则就死循环了

方法四、使用autossh

需要下载autossh软件,操作和直接使用ssh 差不多

-M是监听端口,监听命令是否有无响应的,帮我们保持链接的


autossh -M 5678 -NTR <local-host>:<local-port>:<remote-host>:<remote-port> user@host

我不喜欢下载软件-乱七八糟的软件装的很多,也不喜欢修改配置-修改后怕影响别人使用,所以我喜欢使用客户端临时配置的方式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SSH端口转发实现内网穿透的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SSH端口转发实现内网穿透的实现

我们局域网的机器能够访问外网,但是外网不能访问内网。因为内网访问互联网时候能确定外网的地址,外网却不能确定我们局域网内的具体地址。(ip地址有限)如果 我们在访问外网的时候,这个链接让他保持、不断,那么这个链接就相当于我们建了一条路
2022-06-04

docker发布sunnyNgrok怎么实现内外网穿透

本篇内容主要讲解“docker发布sunnyNgrok怎么实现内外网穿透”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker发布sunnyNgrok怎么实现内外网穿透”吧!一、创建自定义镜
2023-07-05

云服务器内网穿透的实现方法

1.了解内网穿透的概念和原理内网穿透是指通过互联网将内网中的服务暴露给外网访问的一种技术。在传统的网络环境中,内网中的设备无法直接被外网访问,而通过内网穿透技术,可以实现将内网中的服务映射到公网上,使得外网用户可以直接访问内网中的服务。2.选择合适的内网穿透工具目前市面上有很多内网穿透工具可供选择,如花生壳、Ngrok、frp等。这些工具都可以实现内网穿透的功能,但具体选择哪个工具需要根据自己的需求和实际情况...
2023-10-27

利用云服务器实现内网穿透

利用云服务器实现内网穿透有许多潜在的好处,例如:保护敏感数据:当你的数据通过云服务器传输到公共云或其他第三方应用程序,你的敏感信息就会被加密或匿名化处理,以确保只有授权用户能够访问和操作。这样就可以确保数据不被未经授权的人访问,从而保护你的数据。减少延迟:通过使用云服务器,你可以减少你的客户端和云服务器之间的交互,从而减少云服务器的延迟。当你在云服务器的托管端运行客户端时,你可以将它们在客
2023-10-26

node.js实现端口转发

本文为大家分享的是node.js端口转发实现代码,供大家参考,具体内容如下#!/sbin/nodevar net = require('net');function proxyPort(srcport,destServer,destport
2022-06-04

SSH端口转发在Linux SysOps中的应用与实现

SSH端口转发在Linux SysOps中有很多应用和实现方式。应用:1. 安全访问内部资源:通过SSH端口转发,可以安全地访问位于内部网络的资源,而无需直接将内部网络暴露在公共网络中。2. 跨网络访问:使用SSH端口转发,可以跨越不同的网
2023-10-09

Docker上部署 nps 和 npc 实现内网穿透

本文介绍了如何使用Docker部署nps和npc实现内网穿透。nps是一款高性能的内网穿透代理服务器,npc是nps的客户端,可以将内网服务映射到公网上。通过Docker的容器化技术,可以方便地部署和管理nps和npc,同时保证了应用的隔离性和安全性。
2023-05-17

使用Nodejs怎么实现内网穿透服务

这篇文章给大家介绍使用Nodejs怎么实现内网穿透服务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 局域网内代理我们先来回顾上篇,如何实现一个局域网内的服务代理?因为这个非常简单,所以,直接上代码。const n
2023-06-15

使用Java实现简单搭建内网穿透

这篇文章介绍了如何使用Java实现简单内网穿透,包括搭建NAT转发服务器和部署Java客户端。NAT转发服务器充当内网和互联网之间的桥梁,而Java客户端在内网设备上运行,通过套接字与NAT转发服务器通信,将数据转发到互联网。文章还提供了Java客户端代码示例,并强调了优化和安全注意事项,例如使用加密和监控流量。
使用Java实现简单搭建内网穿透
2024-04-02

openVN安装搭建步骤,实现内网穿透

文章目录 搭建步骤安装OpenVPN服务端使用命令在三台主机上安装openVPN安装Easy RSA套件(用于生成服务端和客户端所需的证书和密钥)下载Easy RSA源码包;下载完后解压,在/etc/openvpn目录下创建目录ea
2023-08-19

编程热搜

目录