FRP穿透服务

目前来说,各大运营商都在减少对个人用户提供公网IP,这已经是一个趋势,估计在IPv6普及前不会有好转。虽然可以通过客服要回公网ip,但是难度太大了,就算能要到运营商也得恶心恶心你,所以目前外网访问家里路由器、NAS、智能家居等成了问题。

frp到目前为止已经使用两年多了,非常稳定,一点问题也没有。目前拿来穿透家里和办公室,特别是穿透家里的DSM什么的。

从前我我写过一篇关于FRP搭建的教程,但是还是有不少朋友在询问我具体细节,因此我利用手头闲置的VPS搭建了一个免费frp服务器。

服务位于新加坡,服务商Digitalocean,加装BBR,不要对速度要求太多。

此服务完全免费。版本0.29.0, 注意和之前的版本不兼容!

服务端信息

ip地址:167.71.126.168
frp端口:7000
token认证:imgki.com
tcp端口:10000以上端口
http端口:80
https端口:443
面板地址:http://frp.imgki.com:7500  admin/imgki.com

客户端配置

客户端下载:https://github.com/fatedier/frp/releases

穿透一个http(s)服务

# 自定义一个配置名称,格式为“[名称]”,放在开头
[router-web]
# 连接类型,填 http 或 https
type = http

local_ip = 192.168.1.1
local_port = 80

# http 可以考虑加密和压缩一下
use_encryption = true
use_compression = true

# 自定义访问网站的用户名和密码,如果不定义的话谁都可以访问,会不安全
# 有些路由器如果从内部访问web是不需要用户名密码的,因此需要在这里加一层密码保护
# 如果你发现不加这个密码保护,路由器配置页面原本的用户认证能正常生效的话,可以不加
http_user = admin
http_pwd = admin

# 假设这里我们填 web01,那么你将 web01.frp.imgki.com 解析到服务端ip后
# 你就可以使用 域名:端口 来访问你的 http 了
# 这个域名的作用是用来区分不同的 http,因为你可以配置多个这样的配置
subdomain = web01

# 自定义域名,这个不同于 subdomain,你可以设置与 subdomain_host 无关的其他域名
# subdomain 与 custom_domains 中至少有一个必须要设置
custom_domains = web02.yourdomain.com

# 匹配路径,可以设置多个,用逗号分隔,比如你设置 locations 为以下这个,
# 那么所有 http://xxx/abc 和 http://xxx/def 都会被转发到 http://xxx/
# 如果不需要这个功能可以不写这项,就直接该怎么访问就怎么访问
locations = /abc,/def

# 重写 host header,相当于反向代理中的“发送域名”
# 如果设置了,转发 http 时,请求中的 host 会被替换成这个
# 一般情况下不需要用到这个,可以不写这项
host_header_rewrite = dev.yourdomain.com

穿透一个tcp服务

# 自定义一个配置名称,格式为“[名称]”,放在开头
[ssh]
# 连接类型,填 tcp 或 udp
type = tcp

# 本地ip,填你需要转发到的目的ip
# 如果是转发到frp客户端所在本机(比如路由器)则填 127.0.0.1
# 否则填对应机器的内网ip
local_ip = 127.0.0.1
# 需要转发到的端口,比如 ssh 端口是 22
local_port = 22

# 是否加密客户端与服务端之间的通信,默认是 false
use_encryption = false
# 是否压缩客户端与服务端之间的通信,默认是 false
# 压缩可以节省流量,但需要消耗 CPU 资源
# 加密自然也会消耗 CPU 资源,但是不大
use_compression = false

# frp 服务端的远程监听端口,即你访问服务端的 remote_port 就相当于访问
# 客户端的 local_port,如果填0则会随机分配一个端口
remote_port = 6001

注意:
子域名我已经设置了泛域名解析frp.imgki.com,你在写http/https中域名的时候subdomain只填写你自己的部分。
比如:你subdomain设置router-weix,那么访问地址就是router-weix.frp.imgki.com强烈建议用项目-ID的形式用于区分,尽量防止混用。
你也可以用自己的域名,那么在客户端的时候要用custom_domains,而且不能和我的主域名一样。

如需研究完整配置说明请看目录下的frpc_full.ini,以及参考frp中文说明

路由器

大部分情况我把穿透放在路由器上,目前不少路由器固件都内置了frp客户端,也有可视化界面,操作起来还不错。

梅林路由

请见我的前期教程:https://post.smzdm.com/p/566063
chrome_MxRq95WXou.png

其他路由器

比如老毛子、openwrt、LEDE都有相应固件,自己研究填写吧
chrome_r8ipplkSfe.png

Windows或Linux服务器

如果要在linxu或者win下使用,只能下载源码使用
下载源码:https://github.com/fatedier/frp/releases 要根据你的服务器来,linux选amd64.tar.gz,Win下选windows_amd64.zip

解压缩:

tar -zxvf frp_0.29.0_linux_amd64.tar.gz

进入后配置

frpc.ini

之后运行

.frpc -c frpc.ini

frpc.ini配置示例(合并后)

# common配置 勿修改
[common]
server_addr = frp.imgki.com
server_port = 7000
token = imgki.com
tcp_mux = true

# http穿透 访问地址:http://router.frp.imgki.com,下同
[router]
type = http
local_ip = 192.168.2.1
local_port = 80
subdomain = router

# https穿透 
[dsm]
type = https
local_ip = 192.168.1.2
local_port = 5001
custom_domains = dsm

# tcp穿透
[Win7]
type = tcp
local_ip = 10.0.0.3
local_port = 3389
remote_port = 13389

客户端配置生成器

网上有一些客户端配置生成器,不会写的人可以去尝试一下

免责说明

1、本站所提供的所有服务及域名的使用只适合测试项目以及家庭内网穿透转公网,请勿用于非法用途。
2、利用本站的所有服务及域名请遵守《互联网管理法律法规》等相关法律法规,合理使用,勿滥用摧毁服务。
3、禁止利用本站的服务及域名用于恶意代理攻击扫描、黄赌毒、博彩等违规网站和项目。
4、禁止用于绕开我国互联网防火墙的监管,非法访问境外互联网站的相关项目。
5、你使用本站的任何服务或域名,即同意以上条例,由此产生的法律以及经济纠纷由使用者承担。

2 条评论

  1. Escher

    不错,不过最近我觉得wg也是一种趋势

    1. Rui
      @Escher

      wg是啥?

发表评论