admin管理员组

文章数量:1564200

背景:
客户要求能从外网网页端访问web控制中心。

介绍:
申请了一个阿里云服务器,其实第一次有试用版本,申请了服务器以后,服务器会给你分配一个外网IP,具体链接:阿里云

申请后就可以在工作台看到了:

然后去安全组打开端口配置:
配置需要访问的端口。

这时候我们通过内网(可以访问外网IP)的电脑进行登录:

ssh root@172.76.118.223
输入密码

然后就可以登录到云服务器了。

但是这个时候我们只能以客户端的方式从内网访问云服务器,那么当我们在云服务器上部署了一个web程序,而这个程序需要从我们的内网访问数据,这时候怎么办?

这时候就需要frp代理(内网穿透)了。
具体看如下:
博客一
博客二

两个博客说的很详细,我这里补充一下:
阿里云服务器设置frp的服务端,你自己的电脑设置为frp的客户端,因为云服务器是无法主动跟你这边内网的电脑建立连接的,只能由内网的电脑主动去连接阿里云服务器才可以,所以这里是这种配置。

阿里云服务器端的frp配置如下:

[common]            #  共同配置,必需有该配置(请勿修改该代理名)
bind_port = 7000    #  frps 监听的端口

记得把这个端口在云服务器上添加上喔。
也就是说frp这个程序的服务端设置在云服务器上,这个frp服务器的端口是7000,然后启动
这个时候你在你电脑上用:

telnet 阿里云服务器地址 7000

是可以联通的。

然后在你内网中的电脑中设置frp程序的客户端配置:

#
[common]
server_addr = 120.76.118.232  #阿里云服务器地址
server_port = 7000      #阿里云服务器frp服务端的端口,你这边的frp的客户端要去连接这个端口,从这里做代理

#下面就是需要代理的端口和地址了
#阿里云服务器通过7000端口做代理转发
#比如你在阿里云服务器上访问curl -o h.html http://127.0.0.1:6001
#那么这个时候阿里云服务器通过frp代理,间接地登录到内网电脑,去访问
#http://172.0.8.21:9990,就是相当于内网电脑内网frp客户端去访问http://172.0.8.21:9990,然后将结果
#转发到阿里云服务器端frp服务端,最后阿里云服务器frp将结果返回到在阿里云服务器上真正访问的人
#绕了一个大圈子,终于可以让阿里云服务器访问到内网中某台服务器了
[web0]
type = tcp
local_ip = 127.0.0.1
local_port = 9990
remote_port = 6000

[web1]
type = tcp
local_ip = 192.168.1.25  #内网中的一个内部ip
local_port = 9990
remote_port = 6001

[web2]
type = tcp
local_ip = 127.0.0.1
local_port = 1935
remote_port = 6002

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 1935
remote_port = 6003

如果你要访问内网中的22,那么输入
ssh -p 6006 内网主机用户名@云服务器ip
输入密码的时候一定要输入内网中的密码,虽然它提示你输入阿里云本机密码

再说一次:
有人访问阿里云服务器:
http://阿里云服务器外网ip:6001
它的链路是如下的
阿里云服务器frp服务端—》内网电脑frp客户端—》192.168.1.25:9000
然后按照原路返回
这方方式适合各种音视频流,比如rtsp rtmp http-flv等

参考:NAT路由器打洞原理
https://wwwblogs/mq0036/p/4644776.html

本文标签: 阿里内网操作服务器