使用FRP实现内网穿透

直接安装FRPS

下载地址:github

修改frps.ini

[common]
bind_addr = 0.0.0.0
vhost_http_port = 8080  # 虚拟主机的端口
bind_port = 10086 # 通信端口对应frpc的server_port = 10086
bind_udp_port = 8081 # udp端口
kcp_bind_port = 65535 # kcp端口
subdomain_host = .zyxweb.cn  # 本机地址,写ip或域名,主意,前面要加"."
token = 随便写 # frpc连接时设置token
dashboard_addr = 0.0.0.0 # 仪表盘的地址,0.0.0.0指的是自己
dashboard_port = 7500 # 仪表盘入口端口号
dashboard_user = zyx-frp # 仪表盘账号
dashboard_pwd = wocao  # 仪表盘密码
max_pool_count = 5  #
disable_log_color = false
max_ports_per_client = 0
log_max_days = 3
log_level = info
tcp_mux = true

frps在宝塔linux里有一个免费版安装

监听地址不用管,tcp端口随便设置,但是frpc要跟frps一致
密钥自己设置

虚拟主机

这上面的设置就是从服务器映射到内网的端口

frpc端

 

[common]                    //公共设置
server_addr = 1.1.1.1       //服务器的ip
server_port = 7000          //服务器的接收地址,与frps同样
token=12345678              //认证密码,不要设置***_token,会改不了密码
use_encryption = true       //启动加密传输,但会吃cpu可以不加


[3389]                      //设置名字,随便起
type = tcp                  //type可以等于tcp udp http https等
local_ip = 192.168.1.2      //映射的内网地址
local_port = 22             //映射的内网端口
remote_port = 2222          //从服务器的这个端口连接tcp的内网

[8080]
type = http                 //设置类型
local_ip=192.168.1.1        //映射得内网地址
local_port = 80             //映射的内网端口
subdomain=二级域名          //映射域名
http_user=admin             //配置打开网页需要的账户密码
htpp_pwd=密码

[router]
type = http
local_ip=192.168.1.1
local_port=80
remote_port=8081
custom_domains=zyxweb.cn    // 自定义域名

 

关于http映射二级域名和顶级域名

比如你有一个b.com 二级域名a.b.com
如果用顶级域名:custom_domains = 你的顶级域名 前面不要加www,就直接 b.com:设置的http端口
如果从二级域名访问,用subdomain=b, subdomain 后面写二级域名,不要写主域名,比如你想从a.b.com访问,把虚拟主机的二级域名写成b.com,访问的时候用a.b.com:设置的http端口

Windows设置开机自启

新建一个txt文件复制下面代码,把拓展名改为vbs,放到:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
如果没有 ProgramData,开启显示隐藏文件即可

Set ws = CreateObject("Wscript.Shell") 
   ws.run "cmd /c 你的frpc.exe的绝对地址 -c 你的frpc.ini的绝对地址 ",vbhide

// windows启动就是把frpc改成frps

设置成服务不登录就可以连接

思路很简单,即将frp注册为系统服务,用winsw就可搞定。winsw是一个开源的软件。
下载winsw ,改名为winsw.exe,放到frp相同的目录里,在同一个目录里创建一个utf8编码的文本文件,文件名是 winsw.xml,内容是:

<service>
    <id>frp</id>
    <name>frp这里是服务的名称</name>
    <description>这里是服务的介绍,随便写</description>
    <executable>frpc</executable> // 这里是运行的软件名
    <arguments>-c frpc.ini</arguments> // 这里是运行的软件配置文件
    <onfailure action=”restart” delay=”60 sec”/>
    <onfailure action=”restart” delay=”120 sec”/>
    <logmode>reset</logmode>
</service>

以管理员权限打开一个命令窗口,cd到frp所在目录,执行:

winsw install
winsw start

如果要卸载服务,执行命令:

winsw stop
winsw uninstall

linux启动方法

./frpc -c ./frpc.ini
// 启动
nohup ./frpc -c ./frpc.ini   
// 后台启动

同理可启动frps

关于微软远程桌面很卡的问题

一个是因为经过转接吗,延迟变高了,但是还有一个我刚发现的问题,我之前的时候一直只穿透TCP,后来我发现UDP也得穿出去,因为要靠udp加速

阅读剩余
THE END