龙空技术网

使用阿里云提供的公网ip和frp工具对内网设备进行穿透访问

帧言 1238

前言:

眼前朋友们对“nginx 穿透”大致比较注重,姐妹们都需要剖析一些“nginx 穿透”的相关资讯。那么小编同时在网上收集了一些有关“nginx 穿透””的相关内容,希望小伙伴们能喜欢,咱们一起来了解一下吧!

前言

最近打算将软路由放到公网上访问,但是因为我所处的地方是出租屋,网线是房东提供的,所以我的路由器肯定是分配不到公网ip的(就算是自己拉的网线也不一定分到公网ip),因此并不是使用DDNS(动态DNS)对内网进行访问,换句话就是只能进行内网穿透了。

所谓的内网穿透其实就是NAT穿透,即将内网ip以及端口映射到公网ip上。通常来说,要完成内网穿透的话需要:拥有公网ip的服务器、穿透工具(服务端、客户端)、能上网的内网设备等设备。

对于穿透工具,比较出名的诸如花生壳、Ngrok、Natapp、frp等等。我自己而言之前用过Natapp做内网穿透,特点是方便,提供一站式的服务端配置,使用时只需要在目标设置安装客户端进行对接即可。现在不用的原因是考虑到自己买了阿里云服务器和域名,而阿里云服务器是有公网ip的,所以就打算干脆在阿里云上搭一个穿透工具服务端来对接内网设备得了,这时就想到了frp提供自搭建的p2p(点对点)对接功能。

拓展:

NAT:Network Address Translation,网络地址转换案例-frp穿透访问路由器

准备

拥有公网ip的服务器 --- 我的阿里云服务器

穿透工具(服务端、客户端)--- frp(frps、frpc)

能上网的内网设备 --- 我家的软路由

访问原理图

阿里云配置

frp下载地址:

步骤1:下载frp并解压

wget  -zxvf frp_0.29.0_freebsd_amd64.tar.gz

步骤2:进入解压后的文件夹配置frps.ini(穿透工具服务端配置)

[common]# frps和frpc的通信端口bind_port = 7000# http协议映射端口(即内网设备的80端口映射到该端口上)vhost_http_port = 8088# https协议映射端口(即内网设备的80端口映射到该端口上)vhost_https_port = 8099

多说一句,上面http和https没有配置成默认的80和443是因为被nginx用了,这是个人原因,如果没有安装nginx和为nginx添加https功能的话可以直接配置成80和443,这样访问的时候就可以省略端口的输入

步骤3:启动并后台运行frp服务端

nohup ./frps -c frps.ini &

步骤4:将启动frp服务端这个动作设置为开机执行

sudo chmod +x /etc/rc.d/rc.localsudo vim /etc/rc.d/rc.local追加以下内容cd /home/admin/frp_0.29.0_linux_amd64nohup ./frps -c frps.ini &

需要注意的是我阿里云服务器的系统是CentOS,系统不同文件的位置可能不同

步骤5(重):配置阿里云的端口访问限制(或者关闭防火墙)

必须对端口放行或者关闭防火墙才能正常访问,否则就会被防火墙拦截

软路由配置

步骤1:下载frp并解压

wget  -zxvf frp_0.29.0_freebsd_amd64.tar.gz

步骤2:进入解压后的文件夹配置frpc.ini(穿透工具客户端配置)

[common]# frps所在的服务器ip(公网ip,这里填写我阿里云的公网ip)server_addr = x.x.x.x# frps和frpc的通信端口server_port = 7000​# ssh映射# 即可以通过 ssh 用户名称@公网ip -p 6000 来访问当前192.168.5.1的22端口[ssh]type = tcplocal_ip = 192.168.5.1local_port = 22remote_port = 6000​# http映射# 浏览器访问 公网ip:8088 来访问当前192.168.5.1的80端口[http]type = httplocal_port = 80local_ip = 192.168.5.1custom_domains = 个人域名,如 xxx.com 或者 yyy.xxx.com​# https映射# 浏览器访问 公网ip:8099 来访问当前192.168.5.1的80端口[https]type = httpslocal_port = 443local_ip = 192.168.5.1custom_domains = 个人域名,如 xxx.com 或者 yyy.xxx.com

步骤3:启动并后台运行frp服务端

nohup ./frpc -c frpc.ini &

步骤4:将启动frp服务端这个动作设置为开机执行

chmod +x /etc/rc.localvim /etc/rc.local追加以下内容cd /root/frp_0.29.0_linux_amd64nohup ./frpc -c frpc.ini &

测试是否成功配置穿透访问

参考和推荐

NAT 穿透原理浅浅说(一):

标签: #nginx 穿透