十二、ssh 连接内网 ubuntu

本教程要达到的目的

在外网用ssh连接到内网的linux主机。

使用的技术

nps

https://github.com/cnlh/nps

设备要求

  1. 具有公网 IP 的主机
  2. 内网设备可以连接网络
  3. 服务端版本要和客户端版本匹配,在安装好服务端版本之后,可以输入 nps version,这时会输出该版本服务端最高支持客户端的版本。

配置步骤

下载 npc

从这个网址下载 npc 的客户端和服务器。https://github.com/cnlh/nps/releases
由于我的外网主机和内网主机都是 ubuntu 64 位,所以我选择了这两个发行版。

我的选择

下载好之后把 server 复制到公网服务器上,client 复制到内网服务器上,解压。

服务器安装使用 npc

安装

服务器端解压之后为两个文件夹和一个可执行文件 npc。



在 ./conf/nps.conf 中修改配置,需要修改了一般有 http 监听的端口,https 监听的端口,用户名密码,web监听端口。


web_username=XX
web_password=XXX
web_port = 9090
http_proxy_port=88
https_proxy_port=4443

修改完成之后在 npc 这个可执行文件的目录下执行:

./npc install 
nps test
nps start
nps status

之后如果要修改 npc 的配置文件就要在 /etc/npc 路径下修改了。

在服务器上配置

  1. 在服务器上注册一个客户端
    还记得我们配置过 web 端口吗,npc服务跑起来之后,其余的事情就都在web界面上解决。
    访问网址:XX.XX.XX.XX:9090

    点击新增客户端,需要填的只有圈起来的几个,最重要的是 客户端验证密钥 。自己设置一个,客户端就是凭着这个密钥连上服务器的。
  2. 为客户端开启tcp转发
    点击 TCP 隧道,新建一个tcp隧道



    需要设置的项目已经圈起来了。服务器端口自己随便设置一个,不过要记住,之后要用,我这里设置的是2211;目标ip为内网主机的ip地址,可以在内网主机上用 ifconfig 查看,端口默认为22;客户端id是上一步我们注册好客户端之后,自动生成的,我们抄过来就好。


    image.png

客户端使用 npc

解压好之后,客户端只有两个文件:



在这个目录下运行:

./npc -server=XX.XX.XX.XX:8024  -vkey=***

XX 是你服务器的地址,vkey是注册客户端时设置的。

执行完这个命令之后,会出现成功提示。


第三台电脑ssh连接内网主机

第三台电脑需要有一个 ssh 工具,我这里使用的是putty。
填上服务器的IP和你在 为客户端开启tcp转发 步骤中设置的端口号,连接。

连接上之后需要输入内网主机的用户名和密码。因为我没有开启 root ssh 登录的权限,所以只可以用非root登录,之后 su - 切换 root 就行。

配置客户端 npc 开机自启动(可选)

杂七杂八

  1. npc 的客户端为 windows 系统也可以使用
  2. 配置允许 ssh 允许 root 远程登录
sudo nano /etc/ssh/sshd_config

把 PermitRootLogin 后面的参数改为 yes
执行

sudo service ssh restart
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。