我们局域网的机器能够访问外网,但是外网不能访问内网。因为内网访问互联网时候能确定外网的地址,外网却不能确定我们局域网内的具体地址。(ip地址有限)如果 我们在访问外网的时候,这个链接让他保持、不断,那么这个链接就相当于我们建了一条路,内网数据能出去,外网数据能进来,ssh也是这个方法。
使用ssh命令链接公网服务器
1、首先在外网服务器上编辑sshd的配置文件
vim /etc/ssh/sshd_config #将GatewayPorts 开关打开 GatewayPorts yes 重启sshd服务,使用修改生效(html" target="_blank">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
我不喜欢下载软件-乱七八糟的软件装的很多,也不喜欢修改配置-修改后怕影响别人使用,所以我喜欢使用客户端临时配置的方式
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
我司是做硬件网管设备的。想通过openvpn实现内网穿透,不仅要实现对网关本身的透传,也要支持对能和网关通信的直连设备、局域网设备等进行直接透传操作。 举个例子: 正常情况下 S、A、B之间是可以互相访问的,但是如何做才能实现 A、C 之间也能通信?
内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能。 内网穿透的原理很简单的说就是: 两台计算机A和B都处于不同的局域网中,A想要访问B, 就需要通过一台服务器做桥接的,桥接的方式有两种,一种是服务器相互转发流量 到A和B,另一种是告诉对方公网IP地址,自己充当一个介绍人的角色, 专业术语叫DNAT目标地址转换。
sshpass ssh直接登录服务器是可以的。 但是改成ssh端口转发就不行了。 我的命令如下 我打印了日志
现在大部分企业会在公司内部搭建各种办公系统, 如: OA、ERP、CRM 等来提高员工的工作效率。 而随着公司的发展,会在各地创建分公司,和员工在外办公出差,在家休假等情况都无法访问到总公司的办公系统。在这种情况下该怎么办呢? 下面我们以管家婆分销ERPV3为例,通过蜻蜓映射内网穿透来实现外网随时随地访问管家婆系统。 搭建管家婆分销系统 在本地局域网内搭建部署管家婆分销ERPV3,确保管家婆服务器
问题内容: 我已经构建了一个打开ServerSocket的简单应用程序,并在连接时将其自身连接到远程计算机上的另一个服务器套接字。为了实现端口转发,我使用了两个线程,一个线程从本地输入流读取并向远程套接字输出流读取流,反之亦然。 该实现感觉有点差劲,所以我问您是否知道更好的实现策略,或者是否有一些代码可以以高效的方式实现。 PS:我知道我可以在Linux上使用IPTables,但是必须在Windo
问题内容: 我有这两个容器,例如(CentOs)和。我想拥有的是,可以从容器中连接到mongo数据库,就像它在本地运行一样, 无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017 但是,如果执行此操作,则必须提供root密码,然后它会将我登录到容器中,并且不会发生端口转发 背景:我想这样做是因为我正在运行一个Java程序,该程序连接到localhost上