本地电脑安装了一个linux系统,但是只能在局域网内的其他电脑上用ssh客户端软件登录上,外网无法登录,如何从外网也能登录到内网的这台linux系统主机呢?
使用开源的反向代理软件holer就可以实现的
安装Java 1.7或者更高版本
使用前请先安装Java 1.7或者更高版本;
检查Java安装是否符合运行要求,输入命令:java -version
java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
如果有Java版本号显示并且版本号是1.7.x及以上版本,则说明Java安装符合运行要求,否则卸载重新安装Java。
下载软件包并解压:
下载Holer软件包holer-client.zip,使用ftp/sftp上传至内网/局域网的Linux系统上;
解压软件包: unzip holer-client.zip
修改配置文件
vim holer-client/conf/holer.conf
公网和内网的地址映射关系如下表所示:
Holer Access Key : HOLER_CLIENT-822404317F9D8ADD
Internet Address : holer.org:65534
Local Address : 127.0.0.1:22
内网Linux系统的sshd默认服务端口是22,选择记录里的Holer Access Key配置到文件:
holer-client/conf/holer.conf
HOLER_ACCESS_KEY=HOLER_CLIENT-822404317F9D8ADD
启动Holer服务
cd holer-client/bin
Linux系统执行启动Holer服务命令: sh startup.sh
如果需要停止Holer服务执行命令: sh shutdown.sh
使用ssh客户端工具MobaxTerm,输入如下命令就可以访问内网的Linux系统了
ssh root@holer.org -p 65534
外网访问内网的Linux系统,可以使用holer实现这一访问的。
下载holer软件包holer-client-v1.0.zip
并上传到linux系统上,然后在holer官网上申请一个key和外网端口比如65034对应linux的22端口,如果申请得到的地址映射如下,这里举例:
Access key: ttttsss777700011 <==> holer.org:65034 <==> 127.0.0.1:22
则在解压软件包修改配置文件holer-client/conf/holer.conf配置 HOLER_ACCESS_KEY=ttttsss777700011
执行命令 sh startup.sh 启动holer即可,
在电脑上使用ssh客户端软件比如mobaxterm 或者putty等,输入主机名 holer.org 端口 65034 以及OS账号就可以在任意外网上访问到这台Linux系统的主机了。
实现的工具很多,比较常用的是这个工具