wiki:linux:linux-windows-frp-nat
目录
frps内网穿透、外网访问内网
概述
frps是什么
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。可以粗略理解它是一个中转站,帮助实现【公网】←→【FRP(服务器)】←→【内网】的连接,让内网里的设备也可以被公网访问到。只需一台有公网IP的 VPS 服务器即可愉快地进行内网穿透,来让外网与内网建立起连接,实现远程访问!
frps资料
- github官方地址:https://github.com/fatedier/frp
- v0.38.0 https://github.com/fatedier/frp/releases/tag/v0.38.0 (截至20211230)
- 说明:本文中使用的连接方式为kcp(基于udp协议),特此注明
准备
- 公网电脑/VPS:Linux,运行frps服务端
- 内网电脑:windows,运行frpc客户端
- 注册域名、域名A记录指向服务器IP、域名备案(有需要的话)
服务端配置(linux为例)
安装
FRP 使用 Go 语言开发,可以支持 Windows、Linux、macOS、ARM 等多平台部署。FRP 安装非常容易,因为开源,只需到 Github 发布页 下载对应系统平台的软件包并解压就可用了。
sudo mkdir -p /opt/frp cd /opt/frp sudo wget "https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz" sudo tar xzvf frp_0.38.0_linux_amd64.tar.gz sudo mv frp_0.38.0_linux_amd64/* /opt/frp
frps.ini 配置
# frps.ini 服务端配置 [common] # bind_addr = 0.0.0.0 # 默认使用TCP连接,可能导致http域名无法访问的问题 # bind_port = 7000 # frp支持使用kcp作为底层的通讯协议,而kcp默认就是基于udp协议 kcp_bind_port = 8190 vhost_http_port = 8080 #开启tls加密 tls_enable = true #客户端也要配置一样的token token = 123456 #超时时间,如果客户端遇到服务启动认证失败,大概率是时区问题,服务器设置一下就好了 authentication_timeout = 20000 # frp 控制面板 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = passwd
开启防火墙端口:7000
运行
./frps -c ./frps.ini
客户端配置(windows为例)
下载
从官方地址下载(https://github.com/fatedier/frp/releases)最新版本,解压缩到相应目录。
https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_windows_amd64.zip
frpc.ini 配置
启动动前,我们需要先修改配置文件。需要修改 frpc.ini 配置文件。
# frpc.ini 客户端配置 [common] server_addr = 100.100.100.100 server_port = 7000 # frp支持使用kcp作为底层的通讯协议,而kcp默认就是基于udp协议 protocol = kcp token = 123456 tls_enable = true [ip_a] # 适用于IP形式访问 # 形式为 server_addr:remote_port # 示例为 100.100.100.100:6655 type = tcp # 局域网IP,如果为本机,则是127.0.0.1 local_ip = 127.0.0.1 local_port = 80 remote_port = 8180 [ip_evlicensemanager] # 适用于IP形式访问 # 形式为 server_addr:remote_port # 示例为 100.100.100.100:6655 type = tcp # 局域网IP,如果为本机,则是127.0.0.1 local_ip = 172.16.0.18 local_port = 88 remote_port = 6655 [domain_a] # 适用于域名形式访问 # 形式为 custom_domains:(frps.ini)vhost_http_port # 示例为 example.com:8080 type = http # 内网 IP (如是本机,也可使用 127.0.0.1 或者这行不要) local_ip = 172.16.0.18 local_port = 88 # 必填项 custom_domains = example.com tls_enable = true
运行
注意程序路径,如果有空格的话,需要加引号“”
./frpc.exe -c ./frpc.ini
或 在程序目录新建文件并编辑为以下内容,然后双击运行
- run_frpc.cmd
@echo off title frpc 桥接软件 正在运行... color 5e echo 启动frpc frpc.exe -c frpc.ini echo 准备退出 pause
frps 服务端注册为服务,并自动启动
创建服务文件
sudo vim /usr/lib/systemd/system/frps.service
编辑为以下内容,并保存
[Unit] Description=frp server After=network.target [Service] Type=simple ExecStart=/opt/frp/frps -c /opt/frp/frps.ini ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID [Install] WantedBy=multi-user.target
设置开启自启
sudo systemctl enable frps
启动服务
sudo systemctl start frps
停止服务
sudo systemctl stop frps
重启服务
sudo systemctl restart frps
查看服务状态
sudo systemctl status frps
参考:
- frp配置实践教程 https://www.jianshu.com/p/09603d9e0b6c
- Frp做内网穿透访问家里的Web网站 https://netsecurity.51cto.com/art/202010/628637.htm
- 利用frp 穿透到内网的http/https网站,实现对外开放(有域名和无域名时的配置情况) https://www.cnblogs.com/sanduzxcvbnm/p/8509150.html
wiki/linux/linux-windows-frp-nat.txt · 最后更改: 2023/01/03 15:25 由 127.0.0.1
评论