目录

一、前置条件

二、为什么要配置这个内网穿透

三、配置过程

1.解析二级域名

2.配置frp最新程序

2.1 下载

2.2 客户端配置

2.3 服务端配置

3. Nginx配置

4. 配置服务端开机运行文件


一、前置条件

  • 公网服务器【必需】(做中继)
  • 全权限域名【必需】(可以解析一个二级域名指定公网服务器)
  • 局域网内的电脑一台【必需】(我用的是WIN10)
  • 有操控公网服务器的权限【必需】
  • 公网服务器有nginx【非必需】
  • 公网服务器使用ubuntu18.04【非必需,其他平台也可】

二、为什么要配置这个内网穿透

  • 爱折腾
  • web调试的需要,如微信公众号开发
  • 只有这方法可以解析出你想要的短小精悍又固定的域名

三、配置过程

1.解析二级域名

比如,frp.taobao.com,指向你的公网服务器IP:1.2.3.4,这两项后面要用,在小本本上记好。。。

2.配置frp最新程序

2.1 下载

github

frp还在频繁升级中,我用的是frp_0.33.0版本,win10电脑(以下称客户端)上放置frp_0.33.0_windows_amd64,服务器上放置frp_0.33.0_linux_amd64,这两个对应文件请自行下载,解压后文件夹改个好用的名称放到你想放的地方,在客户端,我是放到D:\frp,在服务端我放到/alidata/server/frp,下面,开始配置frp.

2.2 客户端配置

打开D:\frp中的frpc.ini(注意,客户端其实只使用这个frpc.exe),写放如下内容:

[common]
server_addr = 1.2.3.4
#服务器开放一个端口,在服务器配置中还要讲
server_port = 7000

#可以设置多个域名指向这个客户端开放的不同端口
[web01]
type = http
local_port = 8068
remote_port = 7001
custom_domains  =  frp.taoba.com
[web02]
type = http
#客户端的web端口
local_port = 8068
#服务器开放的端口
remote_port = 7001
custom_domains  = abc.taoba.com

然后,在CMD中cd 到D:\frp操作:frpc -c frpc.ini,客户端就开始工作了,当然,现在根本实现不了你想要的穿透

根据我一贯做法——我要把这完意搞成开机自动运行,刚才的命令行操作只是临时调试用的,so,你想了解更多,请使用frpc --help。

******nssm是一个很好用的工具,你可以在网上查询,它的下载地址是:这里这里,目前是2.24版,下载后解压,根据你的客户端系统选择一个nssm.exe文件,把它放到D:\frp,和frpc同一文件夹。

在CMD(要求管理员权限)中进行安装:输入 nssm install

socket nginx 穿透 ftp nginx 内网穿透_socket nginx 穿透

然后,nssm start,好吧,以后它会自己玩,不用每次开机都要打开CMD操作了。nssm --help可以让你学到更多。

现目前,客户端部分就算配置完成了。

2.3 服务端配置

在xshell中cd 到/alidata/server/frp,我们进行frps配置,在服务端,只需要运行这个文件,所以frpc是客户端的,frps是服务端的。写到这里,不得不说,frp官方的文档写的在国内算好的吧,但我还是一下子没读懂。前后搞了一个下午才初入门槛。

给frps权限 chmod 700 frps

然后: nano frps.ini(我不喜欢vim),进行如下配置:

[common]
#在服务器上,要开放7000和7001两个端口
bind_port = 7000
vhost_http_port = 7001
#下面这两行是log文件,如果不设置,运行状态会打印在屏幕上,调试时建议先注释掉下面两行
#log_file = ./frps.log
#log_level = warn

然后保存,端口可以根据自己的情况设置成其他的数值,这里只是根据官方文件测试。

然后在xshell中输入:./frps -c ./frps.ini,这时,屏幕上开始输出一些信息,但当你在浏览器中输入你的域名时,仍然不能看到你想要的。可以偿试:frp.taobao.com:7001或者:1.2.3.4:7001

如果想直接用frp.taobao.com访问你的客户端上的站点,还需要做一些工作。

3. Nginx配置

为你的frp.taobao.com二级域名配置nginx文件(基本靠你自己,我的nginx已经被我搞乱了,搬到你那里可能真不能用):

server {
    listen       80;
    server_name  frp.taobao.com;

    location / {
        proxy_pass  http://127.0.0.1:7001;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_max_temp_file_size 0;
        proxy_redirect off;
        proxy_read_timeout 240s;
    }
}

以上是网上的内容,我没有测试!!!因为我的nginx都配置成https了。。

下面是我的https文件,是经过测试的

server
{

	listen 443 ssl;
	ssl_certificate /xxxx/xxchain.pem;
	ssl_certificate_key /xxxx/xxprivkey.pem;
	server_name frp.taobao.com;
	access_log /alidata/log/nginx/access/vend.log;
	error_log /alidata/log/nginx/error.log;

	location / {
		proxy_pass http://127.0.0.1:7001;
		proxy_set_header Host $host;
	}
}

重启nginx,在浏览器中输入frp.taobao.com,出现你的网站了吗?还没有?那你在客户端也要让你的网站运行起来,就象是它在服务器上一样。

当然,这还达不到我的要求,我说过,我喜欢让它开机自动运行,最终目标就是,我每天到办公室打开电脑,别人就可以自由的浏览我电脑上的网页。。。

4. 配置服务端开机运行文件

以下配置只适用于ubuntu18.04

nano /etc/systemd/system/frps.service

[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/alidata/frp/frps -c /alidata/frp/frps.ini

[Install]
WantedBy=multi-user.target

systemctl enable frps

systemctl start frps

systemctl stop frps

到目前,这个内网穿透的配置就算完成了,当然,这只是一个完整的流程,内容很单薄。如果只是简单的测一下网站,这样用就可以了,可以很方便的用到自己的域名。但是如果有更重要的用途,建议仔细阅frp的官方文档,进行更严格的设置,比如设置密码,鉴权等。