关于frp:搭建FRP遇到的问题和解决办法

FRP是一个开源的内网穿透小工具,自己搭建应用过程中经常出现问题(都是心酸泪),尽管当初不必了,因为公司在用商业级的神卓互联来代替frp,因为对性能要求比拟高,FRP适宜集体应用,目前用不到了,现将常见问题整顿如下:1.是否领有给frp程序赋予运行的权限 Linux 例如frps文件在/root/目录 执行命令:chmod +x /root/frps 给这个frps文件赋予可运行权限命令。 frps文件必须领有 755 以上权限才可运行。 Windows 以管理员身份运行。 2.设施零碎架构和采纳的frp版本,是否匹配,看这里 有时候无奈运行,可能是你抉择的frp对应架构版本不同,这也是个问题。 Windows win + R,输出cmd,确定,关上命令窗口,输出msinfo32,留神要在英文状态下输出,回车。而后在弹出的窗口中就能够看到零碎的具体版本号了。 Linux、Android、Raspberry Pi 输出 cat /proc/version 路由器 输出cat /proc/cpuinfo 查看相干信息,是否所应用的frp架构版本适宜应用。 留神: 通过命令 ./frps -v 或 ./frpc -v 显示以后版本,则可运行的了。 然而,尽管可运行,但不代表能失常运行和失常应用,还波及到上面这几方面,须要留神的 -c 指向ini文件为绝对路径,是否正确Linux 例如frps文件和frps.ini文件都在/root/目录 正确用法 /root/frps -c /root/frps.ini 谬误用法 /root/frps -c /frps.ini Windows 例如frps文件和frps.ini文件都在 D盘frp文件夹 正确用法 D:\frp\frps -c D:\frp\frps.ini 谬误用法 D:\frp\frps -c \frps.ini -c参数为指向ini文件,必须为以后文件的绝对路径。 运行frp,还须要加-c ini文件 4.ini文件配置参数是否正确 服务端frps.ini文件和客户端frpc.ini文件,所配置的参数是否正确,两者是否对应能用? 很多人,认为这两边都运行了就行。然而这个情理就像一个公司和员工之间的密切联系。 frps.ini代表公司,frpc.ini代表员工。 ...

October 16, 2022 · 1 min · jiezi

关于frp:frp免费内网穿透访问家用电脑本地服务http示例

内网穿透他人是无奈通过一个链接拜访到你家里的电脑的某个文件夹外面的文件的,因为你家里的电脑属于内网,而能通过一个链接去拜访的属于公网,所以这就须要应用【内网穿透】这一个技术概念去实现近程拜访家里电脑。 frp是什么frp是一个专一于内网穿透的高性能的反向代理利用,反对 TCP、UDP、HTTP、HTTPS 等多种协定。能够将内网服务以平安、便捷的形式通过具备公网IP节点的直达裸露到公网。 frp整个服务过程就是这样,与其说是收费,实际上你也是须要一台服务器来实现。如果你有服务器,那就好办,如果没有服务器,要么购买服务器,要么就借用别人服务器去搭建这个frp穿透服务。 frp下载frp是收费开源的,能够在GitHub下载对应的版本:https://github.com/fatedier/f... 因为我是Linux服务器做服务端,Windows零碎作为客户端,所以我这边就下载了两个版本,一个是用于架设服务端frp一个用于架设客户端。 frp装置装置文档(中文):https://gofrp.org/docs/setup/ 我的服务器是应用宝塔面板,间接在宝塔面板的【文件】根目录下的www/wwwroot/目录下创立了一个frp目录,而后将frp_0.41.0_linux_386.tar.gz解压后这三个文件上传到这个目录。 这三个文件是服务端frp的二进制文件和配置文件。 这样就曾经是部署好了服务端,接着就是部署客户端。因为我的客户端是Windows,所以我方才下载了2个frp版本,方才部署的是Linux服务器的服务端,当初部署的是Windows客户端。将frp_0.41.0_windows_386.zip解压后这三个文件复制到你电脑的任意目录下,我这里是放在D盘的frp目录。 配置和启动frp实现http拜访内网服务在宝塔面板的文件治理面板中找到frp的文件目录双击frps.ini关上配置文件,如下图进行配置。 服务端配置 [common]bind_addr = 0.0.0.0bind_port = 7000privilege_token = 12345678vhost_http_port = 8080阐明:bind_addr是服务器本地ip,bind_port是服务器本地凋谢进去用于frp的端口,privilege_token是用于服务端和客户端的一个平安验证的token令牌,vhost_http_port是服务端对外开放的一个http端口,原则上是应用80端口的,然而个别有服务器会架设80端口用于其余网站或者服务了,所以80应该会被占用,这里就应用8080代替80端口。 客户端配置 关上客户端frp的配置文件frpc.ini,我这里应用sublime text3关上,你也能够应用记事本或者其余代码编辑器关上。 [common]server_addr = xxx.xx.xx.xserver_port = 7000privilege_token = 12345678[httpname]type = httplocal_port = 80local_ip = 127.0.0.1custom_domains = www.qq.com阐明:server_addr是服务器的ip地址,server_port是服务端frp设置的凋谢端口,privilege_token是服务端设置的token,type是http服务,local_port是客户端的本地服务端口(我这里的客户端是家里的电脑),家里电脑搭建了一个网站并且应用phpstudy在本地开启了服务,所以是80端口,local_ip是客户端http服务的ip地址,本地服务的ip地址都是127.0.0.1,custom_domains是绑定的域名,你须要去解析这个域名到你的服务器的ip上。 以上服务端和客户端配置实现。 开启frp服务关上宝塔面板的【终端】 通过cd命令cd到你的frp服务端的目录下再去执行上面的命令启动frp服务端。 ./frps -c ./frps.ini服务端启动之后,再去启动客户端。因为我的客户端是windows,所以应用cmd进行启动。在frp的客户端的目录下的文件目录上输出cmd按回车进入cmd命令行工具。 间接输出frpc.exe按回车启动客户端。 拜访服务当以上配置都实现了之后,你的frp内网穿透服务即可应用。 在浏览器输出你方才配置的域名和frp服务端对外服务的端口号即可通过http拜访内网的服务。例如你的域名是www.qq.com,当初配置的服务端http端口是8080,那么就要拜访:http://www.qq.com:8080,留神,肯定要在服务器凋谢以上波及到的端口,无论是8080还是7000端口,都须要凋谢,具体凋谢地位是宝塔面板的【平安】 我是应用phpstudy在家里电脑搭建了一个网站,所以间接拜访即可显示。 作者:TANKINGWeb:www.likeyunba.comWeChat:sansure2016(加我可进技术群)

March 25, 2022 · 1 min · jiezi

关于frp:使用frp进行windows远程内网穿透

首先你要有个服务器 下载GitHub仓库frp中下载各个系统的对应版本 装置linux版服务端装置上传frps和frps.ini文件即可 frps.ini配置内容如下 [common]bind_port = 1234配置阐明:和客户端通信的端口,用于内网穿透所在目录执行命令 nohup ./frps -c ./frps.ini & 后盾运行frps服务端 客户端下载windows版客户端程序 只需frpc.exe和frpc.ini文件 frpc.ini配置文件如下 [common]server_addr = 你的服务器地址server_port = 1234[ssh]type = tcplocal_ip = 127.0.0.1local_port = 3389remote_port = 3389[common]中的参数是服务器ip和内网穿透通信端口 [ssh]中 local_ip 和 local_port 示意客户端将建设的连贯转发到那个本地ip和端口remote_port 示意将服务端这个端口的连贯转发到客户端指定的ip和端口 控制台中定位到frpc所在目录 执行命令frpc -c frpc.ini即可启动客户端 也可制作成bat文件疾速启动 d:cd D:\Software\frpcfrpc -c frpc.iniwindows客户端装置成零碎服务下载winsw打包服务工具放到frpc.exe所在目录 增加一个winsw.xml配置文件 <service> <id>frpc</id> <name>frpc</name> <description>frp客户端</description> <executable>frpc</executable> <arguments>-c frpc.ini</arguments> <logmode>reset</logmode></service>管理员控制台执行 winsw install,而后手动启动该服务即可

October 28, 2021 · 1 min · jiezi

关于frp:5-分钟使用内网穿透快速实现远程桌面

1. 前言大家好,我是安果! 一提到远程桌面,可能大家都会想到 TeamViewer、向日葵等第三方软件 然而,它们大多是商业化软件,价格昂贵;即便有提供收费版本,也是各种限度,稳定性和安全性也没法失去保障 本篇文章将介绍如何应用「 内网穿透 」实现远程桌面治理 2. 内网穿透 Frp常见实现内网穿透的计划有:Frp、Ngrok、natapp 其中,Frp 是一款开源的、简洁易用、高性能的反向代理软件 它反对 TCP、UDP、HTTP、HTTPS 等协定类型 官网地址:https://github.com/fatedier/frp 3. 操作步骤上面以 Frp 内网穿透为例,实现远程桌面拜访 3-1  部署 Frp 服务端到云服务器 依据零碎平台,从上面链接下载 Frp 源码上传到云服务器 https://github.com/fatedier/f... 当然,也能够通过 wget 命令间接下载 # 应用wget命令下载0.37.1版本wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz接着,解压文件压缩包 # 解压文件tar -zxvf frp_0.37.1_linux_amd64.tar.gz而后,应用 vi/vim 编辑 Frp 服务端配置文件「 frps.ini 」 其中 bind_port 用于指定 Frp 服务端的端口号dashboard_user、dashboard_pwd、dashboard_port 别离用于配置 Frp 后盾治理的账号信息及拜访端口号# frps.ini[common]bind_addr = 0.0.0.0bind_port = 7777token = 12345678 # 受权码# 配置frp后盾治理账号dashboard_user = admindashboard_pwd = admindashboard_port = 8888 enable_prometheus = true# 配置日志配置文件夹log_file = /var/log/frps.loglog_level = infolog_max_days = 3最初,凋谢云服务器防火墙端口、配置平安组规定,运行 Frp 服务 ...

September 17, 2021 · 1 min · jiezi

关于frp:frp内网穿透

官网文档地址文档 | frp (gofrp.org) 疾速应用frp的应用次要分为两个端,别离时服务器端和客户端,其中客户端也就是被内网穿透的电脑或服务器,而服务器端则是具备公网ip的能够进行内网穿透的电脑或服务器。 在这里仅记录简略疾速的应用形式 服务器端 首先须要下载frp的Release的包,而后解压并进入到解压目录,而后会发现有文件:frps frps.ini 这两个文件便是内网穿透服务端的次要工具。而后编辑frps.ini文件,如下: [common]bind_port = 3000 # 这个端口是服务器监听被内网穿透客户端的vhost_http_port = 1111 # 这个是在http上须要用到,但我没有域名,便没有用,实践上如果想要拜访网址的化也能够应用tcp的映射,通过ip和端口进行拜访dashboard_port = 7234 # 服务的治理界面dashboard_user = username #服务端治理界面登录用户名dashboard_pwd = password # 服务端治理界面登录明码编辑实现上述文件后,通过./frps -c ./frps.ini执行能够启动内网穿透服务器。当然此时一旦退出终端,内网穿透便会进行,一次最好启动命令时,程序的运行时后盾运行不依赖终端的,命令如下: mkdir log.log # 新建日志文件nohup ./frps -c ./frps.ini > log.log 2>&1 & # 此命令执行后,内网穿透后盾运行启动胜利后便能够拜访服务端的治理界面,如下图: **拜访地址: 公网ip:dashboar_port 被内网穿透的客户端 同样首先下载frp包,而后解压,能在外面看到两个文件:frpc frpc.ini 而后编辑frpc.ini的内容,如下: [common]server_addr = x.x.x.x # 代理服务器的ipserver_port = 3000 # 代理服务器承受内网信息的接口admin_addr = 127.0.0.1 # 被代理客户端的治理界面地址admin_port = 4400 # 被代理客户端界面的portadmin_user = username # 被代理客户端界面的用户名admin_pwd = password # 被代理客户端界面的用户明码[ssh] # 自定义一个内网穿透名称type = tcp # 内网穿透形式local_ip = 127.0.0.1 # 内网应用程序的sportlocal_port = 22 # 内网客户端上应用程序的核好remote_port = 23456 # 内网穿透服务器须要凋谢的端口,用户能够通过这个端口进行申请,而后将相干信息再发送到用户手中[admin_ui] # 客户端的治理页面type = tcplocal_port = 1234remote_port = 1234[nacos]type = tcplocal_port = 1234remote_port = 1234如上述文件,次要采纳的都是port进行连贯 ...

May 30, 2021 · 1 min · jiezi

关于frp:使用frp进行内网穿透

1. frp概念frp 是一个专一于内网穿透的高性能的反向代理利用frp分为两局部 frpc 客户端,工作在内网服务器上frps 服务器端,工作在公网服务器上一个代理对应一个服务,frpc能够反对多个代理我的项目地址2. 应用frp部署内网穿透服务2.1 下载frp部署文件在frp我的项目的release页面,下载特定版本的frp我的项目文件,将我的项目两件别离放入公网服务器与内网服务器,并解压,进入解压后的我的项目文件2.2 公网服务器配置frps.iniecho "[common]bind_port = ${bind_port}# validation, same in frpc.initoken = ${token}# Dashboard configdashboard_port = ${dashboard_port}dashboard_user = ${user}dashboard_pwd = ${passwd}# http://{dashboard_addr}/metrics will provide prometheus monitordata.enable_prometheus = true" > /opt/frps.ini我的项目目录执行 sudo nohup ./frps -c /opt/frps.ini2.3 内网服务器配置frpc.iniecho "[common]server_addr = ${public_ip}server_port = ${bind_port}token = ${token}# set admin address for control frpc's action by http api such as reloadadmin_addr = 127.0.0.1admin_port = 7400[ssh]type = tcplocal_ip = ${local_ip}local_port = ${local_ssh_port}# remote port listen by frpsremote_port = ${public_ssh_port}" > /opt/frpc.ini我的项目根目录执行 nohup ./frpc -c ./frpc.ini备注: ...

February 23, 2021 · 1 min · jiezi

关于frp:frp-内网穿透

下载 服务端 和 客户端frp 服务端配置wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz## 解压tar -zxvf frp_0.31.1_linux_amd64.tar.gz## 进入目录 删除不必要的文件rm -f frpcrm -f frpc.inirm -f frpc_full.inirm -f systemd/frpc.servicerm -f systemd/frpc@.service### 批改 frps.ini 文件,设置 http 拜访端口为 8080[common] bind_port = 7000 #服务启动占用端口vhost_http_port = 8080 #进行转发端口#设置用户名和明码,留神是状态面板的用户名和明码。dashboard_user = admindashboard_pwd = admin# 控制面板dashboard_port = 7500#令牌,很重要,用于验证与客户端的通信。token = 12345678#自定义二级域名,如果设置了,之后在客户端的http、https类型的代理中能够不配置custom_domains,而是配置一个 subdomain 参数。能够不配置,默认没有配置。subdomain_host = frps.comauto_token=12345678## 配置 服务自启服务cd systemdVim fops.service##[Unit]Description=Frp Server ServiceAfter=network.target[Service]Type=simpleUser=nobodyRestart=on-failureRestartSec=5s## 装置目录ExecStart=/etc/frp/frps -c /etc/frp/frps.ini[Install]WantedBy=multi-user.target### 复制到启动服务中cp systemd/frps.service /etc/systemd/system/# 启动测试systemctl start frps.service# 查看启动状态systemctl status frps.service# 进行systemctl stop frps.service# 开机自启systemctl enable frps.service#### xx.xx.xx.xx:7500 能够查看面板客户端配置下载Mac客户端 https://github.com/fatedier/frp/releases解压 tar -zxvf frp ## 进入目录 删除不必要的文件rm -f frpsrm -f frps.inirm -f frps_full.inirm -f systemd/frps.servicerm -f systemd/frps@.service### 配置 frpc.ini 文件[common]server_addr = xxx.xx.xx.xxserver_port = 7000auto_token=12345678[web]type = httplocal_ip = 127.0.0.1local_port = 80remote_port = 8080custom_domains = 域名//开启加密use_encryption = trueuse_compression = trueMac 守护线程启动sudo vim ~/Library/LaunchAgents/frpc.plist<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//ENhttp://www.apple.com/DTDs/PropertyList-1.0.dtd ><plist version="1.0"><dict> <key>Label</key> <string>frpc</string> <key>ProgramArguments</key> <array> //frpc 装置目录 <string>/Users/admin/software/frp_0.31.1_darwin_amd64/frpc</string> <string>-c</string> <string>/Users/admin/software/frp_0.31.1_darwin_amd64/frpc.ini</string> </array> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/></dict></plist>### 配置 开机主动启动sudo chown root ~/Library/LaunchAgents/frpc.plistsudo launchctl load -w ~/Library/LaunchAgents/frpc.plistsudo launchctl unload ~/Library/LaunchAgents/frpc.plist

December 19, 2020 · 1 min · jiezi

内网穿透工具frp的源码解读之概念流程篇

最近学习go语言,看完基础和高级篇后,果断拿起一个开源项目看看,于是就找到内网穿透工具——frp,它具体干嘛的,我就不多说,可以自己上官网看看,动手试试。 概念工作连接和通信连接要分开的理解工作连接是实际用户操作的连接,如ssh通信的流量就走这连接。通信连接是客户端与服务端的协议通信建立内网穿透的逻辑,里面逻辑就包含工作连接的创建 角色客户端:就是执行frpc程序的机子(也就是内网的机子)服务端:就是执行frps程序的机子用户: 就是外网机子,访问frps的机子。 核心流程客户端登陆(通信连接)服务端建立controler客户端建立control,发送NewProxy(通信连接)服务端接收到NewProxy(通信连接),并响应ReqWorkConn,开始建立与用户的监听,handler是HandleUserTcpConnection(server/proxy/proxy.go:235)客户端接收ReqWorkConn(通信连接)客户端创建流量连接(与服务端的新连接)发送NewWorkConn给服务端(流量连接)客户端创建与本地的连接(实际业务)客户端join两个连接(流量连接和本地连接)服务端在接收NewWorkConn,就将该流量连接放入连接池服务端接收用户的连接,会调用HandleUserTcpConnection,该handler就是从上面的连接池获取连接,然后join用户连接和流量连接。所谓建立controler也是为了创建消费者模式的,readCh, sendCh, msgHandler, manager

July 1, 2020 · 1 min · jiezi

frp-实现内网穿透Windows-版

 配置 frp 实现内网穿透frp 中文文档:https://github.com/fatedier/f... 一、frp 的作用     利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。     对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。     利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。 二、安装 frp 1. github下载地址:https://github.com/fatedier/f...    公网、内网服务器都下载一份。 找到第一条,然后下载frp_windwos_amd64.zip这个(amd64是64系统,386是32位系统,现在电脑基本64位了),比如图片上的frp_0.33.0_windows_amd64.zip 2、将frp_0.33.0_windows_amd64.zip解压至任意目录 3、进入解压目录这里所有 frpc 开头的文件都是客户端文件,所以全部删了,我们服务器只需要 frps 开头的文件 4、配置服务端(公网服务器)我们打开frps.ini(我用的notepad++编辑器,记事本也可以)<font color=red>注意配置文件不支持注释,请不要把汉字复制进去</font> [common]bind_port = 7000           #与客户端绑定的进行通信的端口vhost_http_port = 6081     #访问客户端web服务自定义的端口号 保存然后打开cmd进入当前目录(cmd不会用自行百度),输入:frps.exe -c ./frps.ini,此时会提示网络防火墙安全警告,点允许提示 start frps success则服务启动成功<font color=red>警告:云服务器一定要开放端口,不会开放自行百度,图中的7000是frp绑定的默认端口要打开,另外一个是http(用不到可以删了)</font> 至此服务端配置完成!5、配置客户端(内网服务器),首先删掉 frps 开头文件文件,然后再进行配置,编辑 frpc.ini<font color=red>注意配置文件不支持注释,请不要把汉字复制进去</font> [common]server_addr = 155.94.169.143   #公网服务器ipserver_port = 7000            #与服务端bind_port一致[yclj]type = tcplocal_ip = 127.0.0.1local_port = 3389 # 3389是windows的远程连接端口remote_port = 24567 # 远程服务器端口(自定义)保存然后执行windows 使用cmd或者powershell进入当前目录,执行 ./frpc.exe -c ./frpc.ini6、访问方式(1) 远程连接windows bind_post要绑定3389,其他的不行ip:155.94.169.143:24567 (这个是服务器开放的端口,映射本地的3389) 三、结尾 1.客户端连接服务端提示访问被拒绝,则需要服务端开放防火墙端口(学习的话全开就行了,生产环境除外)。 2.其他功能请阅读 frp 中文文档:https://github.com/fatedier/f...

June 9, 2020 · 1 min · jiezi

内网穿透神器FRP

frpfrp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议原文地址 目前主要的场景是内网穿透,可以用于本地调试微信接口、本地站点公网访问等。 本文主要讲解: frp客户端配置frp服务端配置&&搭建准备frp执行区分不同的平台,在服务器上执行命令: arch如果输出x86_64则需要下载带linux_amd64的那个压缩包;如果输出的是其他的,则在文件列表中找 linux 的对应架构的压缩包 frp_0.20.0_darwin_amd64.tar.gz macfrp_0.20.0_linux_arm64.tar.gz linuxfrp_0.20.0_windows_386.zip windows然后尝试运行./frps --help, 正常会输出帮助信息。 如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了。 客户端-frpc客户端和服务端版本号一致,目前使用的是v0.20.0。 启动命令: ./frpc -c frpc.inifrpc.ini客户端配置(必须) [common]# frp 服务器端地址,ip或域名server_addr = frp.xxx.com# frp 服务端端口,即填写服务端配置中的 bind_portserver_port = 7000token = xxxxxHTTP(S)[apixxx]# http 或 httpstype = http# 默认不需要改变ip,指向本地local_ip = 127.0.0.1# 对应服务的端口号local_port = 9000# http 可以考虑加密和压缩一下use_encryption = trueuse_compression = true# 自定义访问网站的用户名和密码,如果不定义的话谁都可以访问,会不安全http_user = adminhttp_pwd = admin# 对应远程的访问地址web0.frp.xxx.com:10080# frp.idayer.com 为服务端配置的 subdomain_host subdomain = web0TCP/UDP 范围转发# 自定义一个配置名称,格式为“[range:名称]”,放在开头[range:multi-port]type = tcplocal_ip = 127.0.0.1use_encryption = falseuse_compression = false# 本地端口和远程端口可以指定多个范围,如下格式,且范围之间必须一一对应local_port = 6010-6020,6022,6024-6028remote_port = 16010-16020,16022,16024-16028最后我们的配置结果如下: ...

July 8, 2019 · 2 min · jiezi

SunnyNgrok如何在没有公网ip或者二级运营商实现外网访问内外机器实现本地开发调试

很多情况下,我们需要对客户延时做好的demo、服务器放在家里或者公司没有公网,怎么实现外网访问? 这是我本地的一个演示地址,我要在外网访问需要怎么操作呢? 通过路由器的端口转发实现1、进入路由器选择端口转发 2、添加转发信息添加端口转发信息,外部端口使用 10000 内部端口是 80,也就是说外网通过 ip:10000 访问的时候实际上访问到的是 192.168.1.175:80 这个ip的80端口 在路由器里面可以看到我的外网ip,或者在 http://www.ip138.com 也可以看到只要让在外网的人通过 http://123.121.142.122:10000/ 就可以访问到我 192.168.1.175:80 这个端口里面的php文件了 如果想要进行 ssh端口 或者 3389 远程访问也是一样的方式操作。 通过路由器的dmz方式实现这里填写了我一个树莓派的地址,然后我通过在腾讯云服务器使用ssh配合我的外网ip登陆树莓派。只需要在腾讯云的服务器上输入以下命令就可以登陆我家里的树莓派。 ssh pi@123.121.142.122通过上图已经可以看到我通过腾讯云的服务器使用ssh登陆到了我的树莓派里面。这种是在一级运营商拉的网线有公网ip的情况下可以通过路由器实现的外网访问内网服务。 注意:在做http服务的时候80端口是不能外网访问的,所以可以通过其他端口访问,例如我就用了10000端口在外网访问,但是在开发微信的时候这点还是不方便,微信只接受80或者443这些功能在你接入一级运营商的时候是可以用的,但是遇到二级运营商或者小区宽带的时候,这就很有心无力了。因为你从这些运营商得到的ip是一个内ip,你自己路由器相当于一个二级路由器,所以在二级路由器端口转发但是在一级路由器并没有,也就是说类似住宅楼一样,你把你加的房门打开了,但是一楼大厅的大门没有打开,外面的人还是进不来。 那我们还有没有什么别的办法能让外网不需要加端口直接访问到80呢?答案是肯定有的。最简单的办法是通过 Sunny-Ngrok 实现,仅需要在平台注册账号密码设置好映射的信息,只要一条命令就能实现外网访问内网了。 1、打开 注册界面 注册一个账号 2、开通隧道由于网站提供了Ngrok和Frp两种服务,因此用户需要自己选择想要开通的类型。 注意:详细阅读网站弹出来的提示,因为很重要注意:详细阅读网站弹出来的提示,因为很重要注意:详细阅读网站弹出来的提示,因为很重要3、填写隧道信息 根据自己实际情况填写 隧道开通之后不能更换协议和服务器隧道开通之后不能更换协议和服务器隧道开通之后不能更换协议和服务器4、下载客户端返回首页下载客户端遇到问题的时候可以观看使用教程哦,里面提供了比较详细的教程。选择自己开通的服务类型和操作系统版本下载。 网站有两种客户端,记得要匹配自己的开通服务类型网站有两种客户端,记得要匹配自己的开通服务类型网站有两种客户端,记得要匹配自己的开通服务类型对于开发者建议开通Ngrok、因为在做微信开发或者支付异步回调的时候可以通过127.0.0.1:4040 实现请求查看和重发,对于开发人员来说比上传代码到服务器和写日志查看日志更省心省力省时间。 5、启动隧道一定要观看官网教程,注意不通的服务类型有不通的启动方式区分,Windows进入cmd命令启动不是双击;Linux通过终端启动。 这个是我在平台上的配置 这个是我在mac的启动方式 启动成功的界面是这样的,我通过上面显示出来的地址就可以访问到我的路由器了,因为我的路由器ip是192.168.1.1 我这里隧道映射的ip也是 192.168.1.1 这样就可以看到已经实现了外网访问内网的机器了。 如果是开发者通过 http://127.0.0.1:4040 可以得到更丰富的功能。 可以看到右边有一个再次请求和下面在内网返回的信息都已经返回回来了,在做异步支付的时候就可以在本地开发了,并且可以看到代码是哪里报错了。

July 6, 2019 · 1 min · jiezi

使用frp搭建内网穿透

内网穿透的概念内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。——来自百度百科。 简单来说,就是让互联网(外网)的设备能访问局域网(内网)的设备提供的服务,这里的设备通常是电脑。 内网穿透的应用场景对开发人员来说,一个典型的应用场景就是针对第三方授权(通常是oauth2.0)和支付回调的开发调试。通过内网穿透工具将第三方SDK的回调地址映射到本机开发环境,从而实现实时调式。 其次是节约部署成本(通常是公网服务器费用)。通过将应用部署在本机,再利用内网穿透工具对外提供服务,这样就能,既节约服务器租用费用,又能提升服务器的硬件配置。 本文适用于第一种情况,即低频率开发调式用。 内网穿透的搭建工具1、ngrok这是一个国外的穿透工具,1.0版本是开源的,目前2.0以上版本已经闭源,并且提供免费和收费的服务。 2、frp这是一个国内的开源工具,目前最新版本为0.26.0,有比较详尽的中文文档,并且一直在维护更新。 由于frp一直开源,并且维护积极、更新频繁,再加上中文文档加持,本文最终选择了frp作为搭建工具。 注:frp自主搭建需要一个有公网ip的服务器,本文使用阿里云ECS。 frp下载和版本选择官方github release地址,目前最新版本是0.26.0 版本选择说明:frp_0.26.0_darwin_amd64.tar.gz —— 适用于Mac OS系统frp_0.26.0_freebsd_386.tar.gz —— 适用于FreeBSD 32位系统frp_0.26.0_freebsd_amd64.tar.gz —— 适用于FreeBSD 64位系统frp_0.26.0_linux_386.tar.gz —— 适用于Linux 32位系统frp_0.26.0_linux_amd64.tar.gz —— 适用于Linux 64位系统frp_0.26.0_linux_arm.tar.gz —— 适用于Linux 32位嵌入式系统frp_0.26.0_linux_arm64.tar.gz —— 适用于Linux 64位嵌入式系统frp_0.26.0_linux_mips.tar.gzfrp_0.26.0_linux_mips64.tar.gzfrp_0.26.0_linux_mips64le.tar.gzfrp_0.26.0_linux_mipsle.tar.gzfrp_0.26.0_windows_386.zip —— 适用于Windows 32位系统frp_0.26.0_windows_amd64.zip —— 适用于Windows 64位系统本文服务器系统为CentOS7 64位,选择了frp_0.26.0_linux_adm64.tar.gz;本机系统为Mac OS X,于是选择了frp_0.26.0_darwin_amd64.tar.gz。 下载方式:1、直接点击链接,使用浏览器下载到本机。利用ssh工具连接到阿里云ECS,再使用lrzsz工具的rz命令将frp_0.26.0_linux_amd64.tar.gz上传到服务器,而压缩包frp_0.26.0_darwin_amd64.tar.gz直接在本机解压。 注:ssh工具、lrzsz实用工具的安装和用法可自行搜索。 2、终端命令方式 2.1、服务器 使用wget下载 wget https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_linux_amd64.tar.gz解压 tar -xzvf frp_0.26.0_linux_amd64.tar.gz2.2、本机 使用curl下载 curl -O https://github.com/fatedier/frp/releases/download/v0.26.0/frp_0.26.0_darwin_amd64.tar.gz解压 tar -xzvf frp_0.26.0_darwin_amd64.tar.gzfrp压缩包文件说明每个压缩包解压后都包含以下文件和一个systemd文件夹: frpc —— 客户端可执行二进制文件frpc_full.ini —— 包含全部配置项的客户端配置文件frpc.ini —— 客户端使用的配置文件,包含最简配置frps —— 服务端可执行二进制文件frps_full.ini —— 包含全部配置项的服务端配置文件frps.ini —— 服务端使用的配置文件,包含最简配置systemd —— 文件夹,用于将frpc和frps添加为服务的配置,linux下使用systemd作为守护程序、mac os使用launchd作为守护程序注:服务端只需用到frp_0.26.0_linux_amd64目录下的frps相关文件,本机(客户端)只需用到frp_0.26.0_darwin_amd64目录下的frpc相关文件。 ...

April 25, 2019 · 1 min · jiezi

Nginx下Frp强制重定向为https配置

迫于家里的路由将300M的带宽强行降到80M的速度,所以入手了一个3205U的软路由,果真没有令人失望,速度飞起O(∩_∩)O哈哈~ 当然,由于宽带没有公网IP所以DDNS就不能使用,转而使用frp,在折腾的过程中踩到了一些坑,所以记录下来,希望能帮助有需要的同学。 frps.ini(服务端配置)[common]bind_port = 5443kcp_bind_port = 5443vhost_http_port = 8080vhost_https_port = 4443# Frp的服务器指示面板配置admin_addr = frp.test.comdashboard_port = 6443dashboard_user = testdashboard_pwd = testlog_file = ./frps.log# trace, debug, info, warn, errorlog_level = infolog_max_days = 3# auth token 可自主生成一些字符串token = sfsfgsdgsdgsgddgsgtcp_mux = truemax_pool_count = 50# 用户自定义域名subdomain_host = frp.test.comfrpc.ini (客户端配置)[common]# 远程服务器IP地址server_addr = 8.8.8.8server_port = 5443token = sfsfgsdgsdgsgddgsgtls_enable = true[lede]type = httplocal_ip = 10.10.10.1local_port = 80# 这里的值最终会被解析为lede.frp.test.com(需要在你的域名服务器做指向你自己公网服务器的*.frp.test.com的# 域名泛解析)subdomain = ledeuse_encryption = false use_compression = true# HTTP基础认证可以不填写http_user = testhttp_pwd = testvhosts.conf(Nginx配置)server { listen 80; listen 443 ssl http2; ssl_certificate /usr/local/nginx/conf/ssl/lede.frp.test.com.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/lede.frp.test.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_buffer_size 1400; add_header Strict-Transport-Security max-age=15768000; ssl_stapling on; ssl_stapling_verify on; server_name lede.frp.okuka.com; access_log /data/wwwlogs/lede.frp.test.com_nginx.log combined; if ($ssl_protocol = "") { return 301 https://$host$request_uri; } location / { proxy_pass http://127.0.0.1:8080;#端口号一定要和frps.ini的vhost_http_port一致 proxy_set_header Host $host; proxy_set_header X-Real-IP 8.8.8.8;#这里填写你的公网服务器IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}注意!!!!!以上操作就能需要重启服务后才能使用 ...

April 25, 2019 · 1 min · jiezi

反向代理和内网穿透

概念反向代理看上去看深奥,其实不然,只是因为汉语言文化的差异导致它看上去深奥。一般反派感觉都比较厉害和神秘。要理解反向代理,我们就不得不说一下正向代理。正向代理 (Forward Proxy)所谓正向代理,就是大家通常说的代理。打个通俗的比方,你想跟你舅舅借钱,但不好开口(或者你舅妈会设法阻拦),就跟你妈说。这时母亲大人就是个正向代理。此时代理本质就是个桥的作用,这个桥让你能和桥对面的人交换信息。正向代理是多对一的概念,例如你姐,你妹你可以通过你妈去跟舅舅借钱,但舅舅只有一个舅舅。舅舅有可能并不知道到底是谁真正在借钱,只知道钱给了你妈。反向代理 (Reserve Proxy)大家都有打客服电话的经历,比如10086,一般上来就是个语音系统,转接人工服务后嘟嘟嘟好几声才有人接听,说我是工号xxx,很高兴为你服务。这个客服总机号码10086就是个反向代理,反向代理隐藏了真实的服务端,有可能有N个客服对应N个号码,但你只需要记一个10086,它会平衡客服之间的压力给你安排合适的人。反向代理是一对多的概念,刚好和正向代理反过来了。正向代理代理的对象是客户端反向代理代理的对象是服务端反向代理最常见的作用就是负载均衡。比如你访问baidu的域名后,baidu会根据你的ip地址和网络情况给你分配最快的服务器,这个分配服务器的服务器就是反向代理。反向代理还有一个场景就是内网穿透,因为服务对象是在内网里,你需要通过代理才能访问到。内网穿透从外网是没办法直接访问到内网的资源的,因为内网是一个局域网不在一个网段,而且还有防火墙在。这时候你弄个反向代理就可以解决这个问题:内网服务器访问代理服务器握手,建立通道外网用户访问代理,代理通过通道和内网通信举一个具体例子,TeamViewer的服务端(外网)就是个反向代理,它需要和TeamViewer客户端(内网)一直保持通信,建立一个通道(TeamViewer ID)。当远程连接这台机器时,你需要登录到TeamViewer服务器,然后通过代理通道(TeamViewer ID)和远程机器连接。一些反向代理服务远程连接内网机器的桌面服务是最常见的需求,有时候我们希望做的是自己的机器上跑一些服务能够从外网访问,比如demo,博客,甚至私有云等等。TeamViewer和向日葵大家可能都知道,我说一些不一样的。frp开源界最流行的反向代理之一,frp全称FaskReverseProxy,它的目标是做最快速可靠的反向代理,用GO语言实现,在Github上正在快速迭代中。安装和配置都非常简单,只需要几个命令就可以完成。frp支持的客户端非常丰富,树莓派,路由器,安卓手机等等,可玩性很高。frp服务可以让你本地的web项目提供给外网访问,特别适合向别人展示你本机的web demo 以及调试一些远程的API (比如微信公众号,企业号的开发)。FRP还可以轻松代理TCP,HTTPS,SSH等等协议,你需要有一台具有公网IP的机器,最好加一个域名。ngrok曾经是开源界反向代理软件的老大,到2.0以后选择闭源,最后开源的版本2016年后就没有再更新,止于1.7。基于C语言实现,配置略复杂,不过据说灵活性和稳定性超好。ngrok也可以代理常见的各种协议,自己搭建只能用早期的开源版本。或者选择商业公司提供的收费服务,国内外可以搜到很多提供NGROK服务的网站,可不可靠不太敢说,但真的很多。这里列举一些知乎推荐过的,你也可以通过ngrok这个关键字搜索到很多。natapp.cn小米球Sunny-Ngrokechositedog-tunnel翻译过来就是狗洞吧,国人做的,基于GO语言开发,在GitHub上活跃度还不错,有1k+的星星,有兴趣可以试一下。serveo.net无需注册,无需配置,只需要 ssh 就行,没有客户端,支持多端口映射,支持自定义子域名,只要一行代码。ssh -R 80:localhost:3000 http://serveo.net我试了一下,临时用一下真的很棒!写在最后内网服务本来就是比较敏感的,所以从数据安全的角度看我觉得还是自己搭建代理服务更可靠。用不靠谱的服务有很大风险,还有可能很坑,非常坑。比如nat123和花生壳,一步一步诱导你付费,协议,端口,流量,速度,域名每个细节都要收费,还不一次说清楚,你付完钱才知道后面还要付钱的,别问我怎么知道的。更多讨论,你也可以去看知乎:https://www.zhihu.com/questio…关于作者:Toby Qin, Python 技术爱好者,目前从事测试开发相关工作,转载请注明原文出处。欢迎关注我的博客 https://betacat.online,你可以到我的公众号中去当吃瓜群众。

February 23, 2019 · 1 min · jiezi

利用`frp`实现树莓派的公网映射(让外网访问本地局域网里的树莓派)

一直就想试试把本地电脑公开到公网实现自己做服务器的感觉,有了树莓派后更有这种想法。于是就动手试试。听说目前两种方法比较流行:ngrok和frp。但是ngrok是收费的且复杂,frp则完全开源免费且简单易用,所以这里来尝试下。大概思路就是:自己先有一台公网的服务器(我是在AWS或DigitalOcean租的),然后让本地的树莓派与公网服务器通过frp程序达成一种映射连接,这样别人访问公网服务器ip的某个端口时,就会自动转向来访问本地的树莓派了。做法是:分别在服务器和本地树莓派上下载frp程序,当然要根据两者自己的系统平台下载不同版本。然后在服务器运行frps,即frp-server,在本地运行frpc,即frp-client。并且在配置文件里约定好,服务器的哪个端口映射到本地的哪个端口。双方都运行后,就可以正常通过外网访问了。难度这个服务的环境、启动、安装等简单到让人发指,唯一的难度就在于服务器上和本地上两个.ini配置文件。配置文件搞明白了,就什么都明白了。有一点不明白,就全不明白。。。参考文章。官方下载地址。其中,服务器如果是Ubuntu或Debian系的,就选择linux_amd64.tar.gz和linux_386.tar.gz结尾的,一个是64位一个是32位。本地树莓派如果是树莓派系统,则选择linux_arm.tar.gz结尾的。第一:服务器上安装配置frp#下载frp:wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz#解压:tar -xzvf frp_0.16.0_linux_amd64.tar.gz#进入目录:cd frp_0.16.0_linux_amd64#修改服务器端配置文件:vim frps.ini#将内容全部替换为如下:# frps.ini[common]bind_addr = 0.0.0.0bind_port = 7000vhost_http_port = 8000vhost_https_port = 8001dashboard_port = 7500privilege_token = 123456dashboard_user = ubuntudashboard_pwd = 123log_file = ./frps.loglog_level = infolog_max_days = 3max_pool_count = 5authentication_timeout = 900tcp_mux = true保存退出后,就可以在当前目录通过sudo ./frps -c frps.ini启动服务器端的这项服务了。测试:随便找个浏览器,输入服务器的IP和刚刚设置的后台管理端口号,就可以访问了。比如我的服务器IP是13.250.64.172,那么就输入:http://13.250.64.172:7500然后就可以看到如下:然后按照刚才设置的账号密码:admin, admin就能登录到,显示如下图:第二:本地树莓派装frp本地配置要比服务器配置难很多,经常出问题。尤其是我的机器只要一设置ssh,就会出错。基本配置如下:[common]server_addr = 服务器IP地址server_port = 7000privilege_token = 123456log_file = ./frpc.loglog_level = infolog_max_days = 3pool_count = 5tcp_mux = true[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 2200[web]type = httplocal_port = 80custom_domains = 服务器IP地址或服务器的域名(仔细填写,这是连接的主要方式)保存退出后,在frp的文件夹执行:sudo ./frp -c frpc.ini,就能启动了。现在,保证服务器端和客户端的两个服务都在同时运行时,我们就可以使用了。连接好后,用这个命令连接ssh:$ ssh ClientUser@ServerIP -p 2200 ...

January 25, 2019 · 1 min · jiezi

使用Frp内网穿透快速搭建Web应用实践

一、背景笔者最近折腾docker服务比较多,这几天想把在内网中的服务搬到公网当中,但docker对内存要求较高,而云服务高内存的服务器又比较贵,家里虽然有一台旧笔记本内存还可以,但是没有公网IP地址,视乎还是没有办法,就在纠结的时候想起FRP这个内网穿透软件,重新回顾了一下搭建方法,发现搭建步骤较为简单,为了以后有所参考,所以把搭建步骤详细记录了下来。二、操作步骤配置服务端配置客户端检验与测试三、配置服务端FRP分为服务端与客户端,一个服务端可以对应多个客户端,笔者首先需要在服务器中下载并安装FRP3.1 文件选择frp是开源的一个内网穿透软件,github源码以及文档地址如下https://github.com/fatedier/frp在文档当中可以看到编译好的二进制文件,URL地址如下:https://github.com/fatedier/frp/releases在下载地址当中有多个版本,笔者需要选择自己所对应系统的版本,笔者服务器使用的是64位的Centos系统,客户端使用的是mac系统,因此需要下载frp_0.21.0_linux_amd64.tar.gz和frp_0.21.0_darwin_amd64.tar.gz两个压缩包,如下图所示3.2 下载与解压现在需要在服务器中下载对应版本,首先通过ssh登录服务器,参考命令如下ssh root@121.42.11.33登录服务器之后,笔者需要使用wget下载文件,参考命令如下wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz下载之后,需要解压刚才下载的压缩文件,参考命令如下tar -zxvf frp_0.21.0_linux_amd64.tar.gz命令返回结果如下frp_0.21.0_linux_amd64/frp_0.21.0_linux_amd64/frps_full.inifrp_0.21.0_linux_amd64/frps.inifrp_0.21.0_linux_amd64/frpcfrp_0.21.0_linux_amd64/frpc_full.inifrp_0.21.0_linux_amd64/frpsfrp_0.21.0_linux_amd64/LICENSEfrp_0.21.0_linux_amd64/frpc.ini解压之后并进入文件夹查看,参考命令如下cd frp_0.21.0_linux_amd64 && ll返回结果如下-rw-rw-r– 1 root root 12K Aug 12 12:38 LICENSE-rwxrwxr-x 1 root root 7.2M Aug 12 12:34 frpc-rw-rw-r– 1 root root 126 Aug 12 12:38 frpc.ini-rw-rw-r– 1 root root 5.6K Aug 12 12:38 frpc_full.ini-rwxrwxr-x 1 root root 8.6M Aug 12 12:34 frps-rw-rw-r– 1 root root 26 Aug 12 12:38 frps.ini-rw-rw-r– 1 root root 2.4K Aug 12 12:38 frps_full.ini3.3 修改配置在返回结果当中可以看到有多个文件,不过笔者实际上只需要关心frps和frps.ini就可以了查看配置文件参考命令如下cat frps.ini返回结果如下[common]bind_port = 7000在返回结果当中可以看到端口为7000,这个端口便是FRP与客户端通信的端口,因为笔者需要搭建Web服务,所以需要在配置文件当中加入http服务的监听端口,参考命令如下vim frps.ini修改配置文件,修改后的配置文件内容如下[common]bind_port = 7000vhost_http_port = 88883.4 服务启动修改完成之后,笔者便可启动FRPS服务,参考命令如下./frps -c frps.ini返回结果2018/08/29 23:43:30 [I] [service.go:130] frps tcp listen on 0.0.0.0:70002018/08/29 23:43:30 [I] [service.go:172] http service listen on 0.0.0.0:88882018/08/29 23:43:30 [I] [root.go:207] Start frps success四、配置客户端在配置服务端完成之后,笔者还需要在内网中配置客户端,这个客户端也就是Web服务器,具体操作如下4.1 下载与解压搭建FRP客户端,首先需要在客户端下载FRP压缩文件;笔者mac系统所下载文件及对应的参考命令如下wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_darwin_amd64.tar.gz下载之后同样需要解压文件,参考命令如下tar -zxvf frp_0.21.0_darwin_amd64.tar.gz命令执行之后返回结果如下x frp_0.21.0_darwin_amd64/x frp_0.21.0_darwin_amd64/frps_full.inix frp_0.21.0_darwin_amd64/frps.inix frp_0.21.0_darwin_amd64/frpcx frp_0.21.0_darwin_amd64/frpc_full.inix frp_0.21.0_darwin_amd64/frpsx frp_0.21.0_darwin_amd64/LICENSEx frp_0.21.0_darwin_amd64/frpc.ini进入解压的文件夹中并查看文件列表,参考命令如下cd frp_0.21.0_darwin_amd64 && ll执行后返回的信息如下total 35632-rw-r–r– 1 song staff 11K Aug 12 12:38 LICENSE-rwxr-xr-x 1 song staff 8.0M Aug 12 12:33 frpc-rw-r–r– 1 song staff 126B Aug 12 12:38 frpc.ini-rw-r–r– 1 song staff 5.6K Aug 12 12:38 frpc_full.ini-rwxr-xr-x 1 song staff 9.4M Aug 12 12:33 frps-rw-r–r– 1 song staff 26B Aug 12 12:38 frps.ini-rw-r–r– 1 song staff 2.3K Aug 12 12:38 frps_full.ini4.2 配置服务客户端所需注意的文件有两个,分别是frpc和frpc.ini,先来查看配置文件默认内容是什么,参考命令如下cat frpc.ini返回结果如下[common]server_addr = 127.0.0.1server_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000在默认的客户端配置文件当中,配置了一个TCP映射,不过笔者需要搭建Web服务,因此还需要添加一个HTTP映射,并修改对应的服务端IP地址,参考命令如下vim fprc.ini编辑后的结果如下所示[common]server_addr = 121.42.11.33server_port = 7000[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 5000[web]type = httplocal_port = 8080custom_domains = test.songboy.net4.3 启动服务修改客户端的配置文件完成之后,笔者需要让客户端的FRP来连接服务端的FRP服务,参考命令如下sudo ./frpc -c frpc.ini执行命令后返回结果如下所示2018/08/30 09:50:07 [I] [proxy_manager.go:300] proxy removed: []2018/08/30 09:50:07 [I] [proxy_manager.go:310] proxy added: [ssh web]2018/08/30 09:50:07 [I] [proxy_manager.go:333] visitor removed: []2018/08/30 09:50:07 [I] [proxy_manager.go:342] visitor added: []2018/08/30 09:50:07 [I] [control.go:246] [55b8b354889e6f44] login to server success, get run id [55b8b354889e6f44], server udp port [0]2018/08/30 09:50:07 [I] [control.go:169] [55b8b354889e6f44] [ssh] start proxy success2018/08/30 09:50:07 [I] [control.go:169] [55b8b354889e6f44] [web] start proxy success在返回结果当中,可以看到ssh服务代理成功,web服务也代理成功,说明笔者的配置无误五、检验与测试前面的操作已经成功的配置了内网穿透服务,现在笔者需要通过ssh登录和web服务来验证服务是否可用,操作步骤如下5.1 测试Web服务测试Web服务是否穿透可以通过访问外网地址,如果能打开内网中的Web服务便说明搭建成功,这里需要搭建一个虚拟主机,参展步骤如下5.1.2 添加虚拟主机要让用户能通过外网访问Web服务,首先需要配置一个域名让其解析到FRP服务器当中,这里为了验证方面,便使用hosts添加记录方式操作,参考命令如下sudo vim /etc/hosts在尾部添加一条host记录,参考内容如下121.42.11.33 test.songboy.net添加的内容当中,IP地址为外网用户能访问到的IP地址,也就是笔者开始搭建FRP服务器的IP地址接下来笔者还需要增加一个虚拟主机,所以需要修改nginx配置文件,在nginx配置文件中添加配置如下server {listen 8080;server_name test.songboy.net;root /Users/song/mycode/work/media-server-api/public;index index.html index.htm index.php;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ .php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}重启nginx ,参考命令如下sudo nginx -s reload5.1.3 访问网站通过浏览器访问,URL地址如下http://test.songboy.net:8888/访问结果如下图所示5.2 测试SSH服务验证SSH的方式是通过ssh连接外网地址,如果登陆到本地服务器便说明ssh服务搭建成功使用ssh登陆,参考命令如下ssh -p 5000 song@test.songboy.net查看当前文件夹,验证是否已经映射成功,参考命令如下ls -l返回结果如下total 0drwx——@ 4 song staff 136 7 19 18:37 Applicationsdrwx——@ 12 song staff 408 8 30 09:47 Desktopdrwx——@ 30 song staff 1020 8 6 08:58 Documentsdrwx——+ 120 song staff 4080 8 29 17:05 Downloadsdrwx——@ 65 song staff 2210 8 18 16:12 Librarydrwx——+ 5 song staff 170 8 17 15:19 Moviesdrwx——+ 5 song staff 170 7 26 11:45 Musicdrwx——+ 4 song staff 136 8 28 19:21 Picturesdrwxr-xr-x+ 4 song staff 136 7 19 16:33 Publicdrwxr-xr-x 8 song staff 272 8 24 14:26 configdrwxr-xr-x 22 song staff 748 8 14 11:00 datadrwxr-xr-x 7 song staff 238 8 24 19:31 dockerFiledrwxr-xr-x 12 song staff 408 8 30 09:28 filesdrwxr-xr-x 7 song staff 238 8 13 09:54 mycodedrwxrwxrwx 20 song staff 680 8 27 16:35 xhprof在返回结果当中,可以看到文件夹与客户端的文件夹一致,便说明ssh服务以及验证成功。作者:汤青松微信:songboy8888日期:2018-08-30 ...

August 30, 2018 · 2 min · jiezi