frp内网穿透

该博客详细介绍了如何利用FRP(Fast Reverse Proxy)工具实现远程访问家中的电脑、内网Web服务及路由器。首先,配置VPS上的FRP服务端,包括修改配置文件、设置权限和启动服务。然后,在本地Windows系统中设置FRP客户端,配置包括远程桌面(RDP)和内网Web服务的映射。通过这种方式,可以实现通过VPS对外提供内网服务,并通过特定端口进行远程访问。

Zerotier速度也很快, 和NPS不相上下。且显示内容更全面,但是需要两端都安装程序,这个可能是个不方便的地方。

想要达成的目标:

  1. 远程访问家里或办公室的电脑(3389)
  2. 远程访问家里或者办公室的内网web(网站)
  3. 远程访问家里或者办公室的路由器

需要的工具:

  1. 一台VPS, 带外网IP,安装CentOS 8.0
  2. frp服务端和客户端(下载地址如下,我下的是0.37版,如果要拷贝下面的frps.ini和frpc.ini需要注意,可能和之前的版本不兼容)

Releases · fatedier/frp​github.com/fatedier/frp/releases正在上传…重新上传取消​

3. Finalshell(连接VPS用)

安装步骤:

第一步:

设置服务端(VPS),用finalshell登录到VPS

测试平台CentOS 8.0

文件版本是0.37版
所有的内容修改在本地完成,然后再上传到服务器上,finalshell有文件上传功能,非常方便。

1. 下载linux_amd64 最新版解压,
https://github.com/fatedier/frp/releases

把frps.service里User=nobody改成User=root
把frps.ini里的内容修改如下:

[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
# 这个下面的8888作为以后web访问的端口使用,以后访问web就是www.yourdomain.com:8888或者你的VPS IP 加上:8888
vhost_http_port = 8888
vhost_https_port = 9999
# 下面这个7500端口是查看后台服务用的,默认就行
dashboard_addr = 0.0.0.0
dashboard_port = 7500

# 下面的用户名和密码改下
dashboard_user = admin
dashboard_pwd = wodemima
# 这个设置下,校验的密码
token = hotdog


2. 用finalshell登录VPS,
复制frps文件到/usr/bin/文件夹下
复制frps.ini到/etc/frp/文件夹下(frp文件夹需要新建)
复制frps.service到/etc/systemd/system目录下

3. 在finalshell中用命令对frps和frps授权,命令如下:
chmod +x /usr/bin/frps
chmod +x /etc/frp/frps.ini #这个可能不需要设置权限,都不报错就说明成功了

4. 启动 FRP 并设置开机启动,命令如下:
systemctl enable frps
systemctl start frps
systemctl status frps

5. 做完以后可以reboot VPS,看看frps服务能否自动启动。

注意:xftp登录后不能上传文件的,修改下权限即可
chmod 777 文件夹

第二步:

设置本机

测试平台 windows10 64bit

windows请下载windows_386版本

官网地址:https://github.com/fatedier/frp/releases

下载好后解压,

frpc.ini配置如下, 下面#号和后面的内容可以删除掉,以免出现未知错误

[common]
server_addr = 81.68.222.333 #这个是你的VPS的外网IP
server_port = 7000
token = hotdog # 校验密码,和上面frps.ini需要呼应

[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6000 # 这个端口随便设置,后面远程访问就是你的域名或者IP加上:6000即可
custom_domains = 3389.yourdomain.com

[web01]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = web.yourdomain.com # 你自己的域名,需要先解析到你的VPS IP
#在vps中把这个地址解析到vps的IP地址,远程访问端口在frps.ini里设置的,为8888,这个端口需要在frps.ini里设置

上面的修改好了后,在本文件夹新建一个文件,start.bat

内容如下:

frpc.exe -c frpc.ini
pause

看到success,说明启动成功了。

下面就是测试了,未完待续。

### frp 内网穿透配置教程、原理与使用方法 #### 什么是 frpfrp(Fast Reverse Proxy)是一个高性能的反向代理应用,支持多种协议,如 TCP、UDP、HTTP、HTTPS 等。它主要用于实现内网穿透,使得外部网络可以访问本地局域网中的服务。frp 由 Go 语言编写,具有良好的跨平台支持,适用于 Linux、Windows、macOS 等操作系统。 #### 为什么选择 frpfrp 的优势在于其简单易用、功能丰富、性能稳定。它支持多种代理模式,如 TCP、UDP、HTTP、HTTPS、STCP 等,并且可以通过简单的配置文件进行管理。此外,frp 支持自定义域名、加密传输、身份验证等功能,适用于多种场景,如远程桌面、Web 服务、游戏服务器等。 #### 工作原理 frp 的工作原理基于反向代理机制。它由两部分组成:**服务端(frps)** 和 **客户端(frpc)**。服务端部署在具有公网 IP 的服务器上,客户端部署在内网环境中。客户端通过与服务端建立连接,将内网服务映射到公网端口或域名上,从而实现外部访问。 具体流程如下: 1. 客户端(frpc)与服务端(frps)建立连接。 2. 客户端将本地服务的端口信息发送给服务端。 3. 服务端将外部请求转发到客户端,再由客户端转发到本地服务。 4. 数据在服务端与客户端之间双向传输,完成请求响应过程。 #### 代理类型 frp 支持多种代理类型,常见的有: - **TCP 代理**:适用于 SSH、数据库等基于 TCP 的服务。 - **UDP 代理**:适用于 DNS、VoIP 等基于 UDP 的服务。 - **HTTP/HTTPS 代理**:适用于 Web 服务,支持域名映射。 - **STCP 代理**:安全的 TCP 代理,需配合 frp 客户端使用,防止被第三方滥用。 #### 内网穿透配置教程 ##### 服务端安装与配置 1. **下载 frp**:前往 [frp 官方 GitHub 仓库](https://github.com/fatedier/frp) 下载对应系统的版本。 2. **解压文件**:将下载的压缩包解压到服务器目录,如 `/usr/local/frps/`。 3. **配置 frps.toml**:编辑 `frps.toml` 文件,配置监听端口、仪表盘端口、认证 token 等参数。 ```toml [common] bindPort = 7000 dashboardPort = 7500 token = "12121212" ``` 4. **使用 systemd 管理服务端**:创建 systemd 服务文件 `/etc/systemd/system/frps.service`,内容如下: ```ini [Service] Type=simple ExecStart=/usr/local/frps/frp_0.59.0_linux_amd64/frps -c /usr/local/frps/frp_0.59.0_linux_amd64/frps.toml KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true StandardOutput=syslog StandardError=inherit [Install] WantedBy=multi-user.target ``` 5. **启动服务**: ```bash systemctl start frps.service systemctl enable frps.service systemctl status frps.service ``` 6. **开放防火墙端口**:在云服务器控制台或命令行中开放 `bindPort` 和 `dashboardPort` 对应的端口。 ##### 客户端安装与配置 1. **下载 frp**:根据客户端操作系统下载对应版本。 2. **解压文件**:将压缩包解压到本地目录,如 `/usr/local/frp/`。 3. **配置 frpc.toml**:编辑 `frpc.toml` 文件,配置服务端地址、端口、认证 token 及代理规则。 ```toml [common] serverAddr = "xx.xx.xx.xx" serverPort = 7000 auth.method = "token" auth.token = "12121212" [[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000 [[proxies]] name = "web" type = "http" localIP = "127.0.0.1" localPort = 80 remotePort = 8080 customDomains = ["example.com"] ``` 4. **启动客户端**: ```bash ./frpc -c ./frpc.toml ``` ##### 使用 systemd 管理客户端(可选) 创建 `/etc/systemd/system/frpc.service` 文件,内容如下: ```ini [Service] Type=simple ExecStart=/usr/local/frp_0.59.0_linux_amd64/frpc -c /usr/local/frp_0.59.0_linux_amd64/frpc.toml KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true StandardOutput=syslog StandardError=inherit [Install] WantedBy=multi-user.target ``` 然后执行以下命令启动并启用服务: ```bash systemctl start frpc.service systemctl enable frpc.service systemctl status frpc.service ``` #### 注意事项 - **安全性**:建议启用 token 认证,并定期更换 token,防止未授权访问。 - **防火墙配置**:确保服务端和客户端的防火墙规则允许相应端口通信。 - **日志监控**:通过查看日志文件或仪表台监控 frp 的运行状态。 - **版本兼容性**:服务端与客户端应尽量保持版本一致,避免兼容性问题。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值