ssh远程转发使远程主机在所有ip上监听

起因:突然一夜之间电信扰拨号ip全变内网地址了,这样即使用了动态域名,绑定的也不是本机ip,外部无法访问了。虽然打电话找电信反映说是可以改回来,但必须先解决眼前的问题,访问内网服务器上的svn仓库。

办法:由于还有一台在公网上的云主机,想到可通过它中转,只要内网主机先与云主机建立连接,这正好可以用ssh的远程转发功能,命令如下:

ssh -gN -R 3690:0.0.0.0:3690 -o ServerAliveInterval=60 [email protected]

结果连接是建立了,但是此时访问云主机3690端口却连不上,上去查看端口状态:

[[email protected]:~]netstat -ln -A inet

输出如下:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State

tcp        0      0 127.0.0.1:3690            0.0.0.0:*               LISTEN

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

……

显示3690虽然在监听,但只在127.0.0.1上有效,因此无法接受外部连接。

可之前已经加上了-g参数,在ssh手册上说过此选项将使端口绑定在外部ip上,以使其它机器可以连接,但为何这里无效呢?

google得知答案(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=228064):

原来-g只是对本地转发有效,要使远程转发也使用外部ip,必须修改远程主机上的sshd_config,增加

GatewayPorts yes

然后重启ssh服务即可。

再次建立转发并查看连接,发现已经监听的是0.0.0.0:3690,打开svn客户端更新顺利执行!

时间: 2024-10-10 15:32:48

ssh远程转发使远程主机在所有ip上监听的相关文章

SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方

1.SSH远程管理 SSH(Secure Sheel)是一种安全通道协议,主要用于实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户的口令.与早期的TELNET(远程登录,tcp23端口).RSH(Remote Sheel,远程执行命令).RCP(Remote File Copy,远程文件复制)等应用想必,SSH协议提供了更好的安全性. 配置OpenSSH服务端(由openssh.openssh-server软件包提供.主配置文件/etc/ssh/

SSH 端口转发

SSH 端口转发功能能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务.其实这一技术就是我们常常听说的隧道(tunnel)技术,原因是 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输.我们知道,FTP 协议是以明文来传递数据的.但是我们可以让 FTP 客户端和服务器通过 SSH 隧道传输数据,从而实现安全的 FTP 数据传输.更常见的情况是我们的应用经常被各种防火墙限制.常见的有禁止访问某些网站.禁用某类软件,同时你的所有网络行为都被监控并

SSH远程登录配置文件sshd_config详解

SSH由客户端和服务端的软件组成,在客户端可以使用的软件有SecureCRT.putty.Xshell等,而在服务器端运行的是一个sshd的服务,通过使用SSH,可以把所有传输的数据进行加密,而且也能够防止dns和IP欺骗,此外,SSH传输的数据是经过压缩的,可以加快传输速度 其服务器端的配置文件为/etc/ssh/sshd_config [[email protected] ~]# cat /etc/ssh/sshd_config#       $OpenBSD: sshd_config,v

Linux SSH端口更改和SSH远程连接服务慢原因排查

Linux SSH端口更改和优化 为什么需要更改SSH默认连接端口 Windows服务器的默认远程管理端口是3389,Linux服务器的默认端口是22.如果在公网上,经常会被工具扫,这是不安全的,为了系统安全,需要更改默认的配置. Linux 6 操作过程 更改配置文件 # cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori 更改配置前备份 # vi /etc/ssh/sshd_config 编辑sshd_config ####添加如下内容####

公司内网Debian Server上的openvpn服务器搭建并通过SSH隧道转发到广域网

由于戴维营公司在长沙的学员,研发人员和北京的研发人员需要协同研发,故需要让北京的兄弟们加入到长沙办公室的内网,访问版本 管理服务器,于是采用在内网服务器上搭建一个OpenVPN服务,并把内网(铁道的宽带,木有分配动态的广域网ip给WAN,悲剧.)的OpenVPN服务端口通过ssh隧道转发到广域网上某个服务器上. 以下是记录过程: OpenVPN服务软件包系统仓库里有现成的包,直接apt-get安装: 1 [email protected]:#apt-get -y install openvpn

oracle11G 已开启监听,但远程连接依旧无监听解决过程

1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListener是没错的) 2.本地使用127.0.0.1可以连接,但使用本机IP则显示无监听,使用其他机器连接也是无监听,先排查一下防火墙问题 3.排查防火墙后依旧没有解决,那么问题根源所在:oracle的listener.ora文件 解决办法: listener.ora文件路径:F:\app\Admini

windows 下 PostgreSQL 监听配置及远程连接

PostgreSQL服务端运行在windows上,IP为:192.168.240.128 配置方法: 1.  修改服务端文件 你的安装目录/postgresql/data/postgresql.conf文件,将 #listen_address='localhost'改成listen_address='*'.有的默认就是,看版本. 2. 修改  /你的安装目录/postgresql/data/gp_hba.conf文件 在其中增加客户端的ip,如下,注意最后一行: # IPv4 localconn

使用Navicat的SSH Tunnel和SecureCRT的端口转发功能连接本机IP被禁止访问的远程数据库服务器

为了安全起见,数据库服务器一般只部署在内网:或者如果部署在公网,但只对某些指定的IP开放.但如果数据最终是给公网用户查询的,总会有一条通道可以访问到数据库.下面利用Navicat和SecureCRT实现对两种不同情景下的数据库访问. 情景一:数据库服务器在公网开放了SSH服务 方法一:利用Navicat的SSH Tunnel Navicat中的配置: General选项卡: Host Name/IP Address:数据库服务器的域名或IP地址 Port:数据库端口(如MySQL:3306) U

SSH 远程端口转发

既然"本地端口转发"是指绑定本地端口的转发,那么"远程端口转发"(remote forwarding)当然是指绑定远程端口的转发. 还是接着看上面那个例子,host1与host2之间无法连通,必须借助host3转发.但是,特殊情况出现了,host3是一台内网机器,它可以连接外网的host1,但是反过来就不行,外网的host1连不上内网的host3.这时,"本地端口转发"就不能用了,怎么办? 解决办法是,既然host3可以连host1,那么就从ho