内网穿透介绍

内网和外网知识

一、内网和外网科普

​ 内网指一块区域的局域网,处于同一局域网的设备之间可以直接进行通信,不用经过网关另外转换,如果设备处于不同局域网,其之间要进行通信,则需要经过网关转换。外网指的广域网或者城域网,其会连接各个局域网,实现其之间的通信。由于ip地址有限,所以局域网内部的设备对外表现为同一个ip地址,由路由器负责信息的再转发。在局域网内部,设备的ip一般为10、172或者192开头。

​ IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络(同一局域网),网络号不相同的主机称之为远程网络主机(不同局域网),本地网络中的主机可以直接相互通信;远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。

​ 通过上述可以知道,对于一个公网ip,可以在网络上唯一确定一台设备,但对于内网ip,由于其是经过路由器再转发的,所以内网ip不能确定设备。一个最简单的例子就是无论在内网还是外网的服务器上,均可以使用ssh来登陆公网ip设备,但使用不处于同一局域网的设备通过ssh和内网ip是无法登陆内网设备的。

二、内网穿透

​ 要想使得ssh像登陆公网ip一样登陆内网设备,可以使用内网穿透技术来实现,其原理就是将内网设备的端口挂载到一个公网ip的设备上,让内网设备的端口映射到公网ip设备的端口上,这样当访问公网ip设备的对应端口时,就会将信息转换到内网对应端口上。

1、开启ssh服务

对于linux系统,无论是CentOS还是Ubuntu,系统自带了ssh客户端,但ssh远程连接服务端需要自己手动安装,所以使用如下命令来安装:

sudo apt install openssh-server

安装好服务端后,还需要对其进行配置,使用如下命令打开配置文件:

vim /etc/ssh/sshd_config

一般需要将如下配置开启:

Port 22
ListenAddress 0.0.0.0
PermitRootLogin yes
PasswordAuthentication yes

设置好配置文件后,重启sshd服务即可:

sudo service sshd restart #重启
sudo service sshd stop #停止

注:开启ssh服务内网设备和外网设备均需操作

2、开启22端口

一般ssh连接使用的22端口(也可以使用其他端口,需要在ssh配置文件的Port项中设置),所以首先判断22端口是否开启,使用如下命令查看:

netstat -nltp | grep 22

或者使用如下命令查看所有已经使用的端口状态:

netstat -nultp

若22端口没有开启,则需要先将其开启:

sudo apt-get install ufw
sudo ufw enable
sudo ufw allow 22

3、端口挂载

将内网电脑的端口22映射到云服务器的端口1111:

ssh -fNR 1111:127.0.0.1:22 root@云服务器ip

将云服务器的2222端口收到的信息转发给云服务器的1111端口:

ssh -fCNL *:2222:127.0.0.1:1111 root@云服务器ip

此时便可通过访问云服务器的2222端口来连接内网设备

注:当使用ssh -p 2222 root@服务器ip来连接时,所填的用户名和密码是内网设备的用户名和密码

4、ssh闲置自动断开

关于ssh闲置一段时间之后会自动断开这个问题,可以在办公电脑上设置每分钟发送一次数据包来维持ssh连接。

在 /etc/ssh/ssh_config 下添加

ServerAliveInterval 60

5、ssh参数介绍

-f 后台运行


-N 不执行远程命令,只用于端口转发,如果后台执行不添加此参数会报错,错误如下:

Cannot fork into background without a command to execute.


-C 请求压缩所有数据


-R port:host:hostport user@host 非本地起端口映射到一台主机

例如 1111:127.0.0.1:22 root@111.111.111.111

将云服务器上的1111端口映射到本地的22端口


-L *:port:host:hostport root@host 本地起端口转发到一台主机

例如 *:2222:127.0.0.1:1111 root@111.111.111.111

将云服务器的2222端口转发到本地的1111端口


-p port 指定ssh访问的端口

三、参考资料

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值