用云服务器搭建Frp内网穿透,实现远程访问家里电脑

用云服务器搭建Frp内网穿透,实现远程访问家里电脑

家里有台服务器或者NAS,想在外面也能访问------但家里是宽带动态IP,没有公网IP,直接访问不了。

Frp内网穿透就是解决这个问题的:在有公网IP的云服务器上跑服务端(frps),家里电脑跑客户端(frpc),流量经过云服务器中转,外网就能访问到家里的设备了。

原理简单说

复制代码
外网用户 → 云服务器(frps) → 家里电脑(frpc) → 内网服务

云服务器有公网IP,家里电脑没有,frpc连上frps之后,外网访问云服务器的指定端口,流量就会转发到家里电脑对应的端口上。

准备材料

  • 一台有公网IP的云服务器(跑frps)
  • 家里要穿透的电脑或设备(跑frpc)

云服务器推荐用雨云,价格便宜,带宽按需选,Frp中转流量不大,1-3M带宽就够日常用。

服务端安装(云服务器上操作)

去GitHub下载frp:https://github.com/fatedier/frp/releases

选Linux amd64版本:

bash 复制代码
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
tar -xzf frp_0.61.0_linux_amd64.tar.gz
cd frp_0.61.0_linux_amd64

创建服务端配置文件 frps.toml

toml 复制代码
bindPort = 7000
auth.token = "你设置的密钥"

bindPort 是frp控制连接的端口,token是验证密钥,客户端连接时要匹配。

启动frps:

bash 复制代码
./frps -c frps.toml

用screen让它后台跑:

bash 复制代码
screen -S frps
./frps -c frps.toml
# Ctrl+A D 脱离

在云服务器安全组放行7000端口(TCP),以及你后续要用的业务端口。

客户端配置(家里电脑上操作)

在家里电脑下载对应系统的frp包(Windows就选windows_amd64)。

创建客户端配置文件 frpc.toml

toml 复制代码
serverAddr = "你的云服务器IP"
serverPort = 7000
auth.token = "你设置的密钥"

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6022

[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 8080

这个配置做了两个穿透:

  • SSH:本地22端口 → 云服务器6022端口
  • Web:本地80端口 → 云服务器8080端口

以后在外面访问 云服务器IP:6022 就相当于SSH到家里电脑,访问 云服务器IP:8080 就是家里的Web服务。

启动frpc:

bash 复制代码
./frpc -c frpc.toml

Windows上双击运行或者命令提示符里执行。

常见使用场景

远程桌面:Windows远程桌面用的是3389端口,穿透出来就能从外面远程控制家里电脑:

toml 复制代码
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 13389

访问NAS:大多数NAS的Web界面是80或者5000端口,穿透出来随时随地管理文件。

游戏联机:朋友想连家里开的游戏服务器,穿透对应端口就行,不需要对方有公网IP。

设置开机自启(Linux服务端)

创建systemd服务文件,让frps开机自动启动:

bash 复制代码
sudo nano /etc/systemd/system/frps.service

内容:

ini 复制代码
[Unit]
Description=frp server
After=network.target

[Service]
Type=simple
ExecStart=/root/frp_0.61.0_linux_amd64/frps -c /root/frp_0.61.0_linux_amd64/frps.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target
bash 复制代码
sudo systemctl enable frps
sudo systemctl start frps

Frp配置一次之后基本不需要管,家里设备开机自动连上,外网随时能访问,挺方便的。有具体场景不知道怎么配的欢迎评论区问。

云服务器推荐:雨云官网

相关推荐
南京码讯光电技术有限公司5 小时前
工业无线AP选型指南:从WiFi 5到WiFi 6+5G CPE,如何构建全覆盖、零漫游、高可靠的智能工厂网络?
服务器·网络·5g
二宝哥5 小时前
Linux虚拟机网络配置
linux·运维·服务器
卧室小白5 小时前
docker网络与服务编排与集群
运维·docker·容器
陳10306 小时前
Linux:进程间通信 和 简单进程池
linux·运维·服务器
数字化顾问6 小时前
(122页PPT)数字化架构的演进和治理(附下载方式)
java·运维·架构
jimy16 小时前
改.bashrc,直观地判断本地repo是否有改动
linux·服务器
zt1985q6 小时前
本地部署网页监控工具 Webmonitor 并实现外部访问
运维·服务器·网络·网络协议
匆匆那年9677 小时前
远程 Linux 校园网认证操作手册(本地浏览器法)
linux·运维·服务器
dog2507 小时前
为何新增网络路径反而引入额外时延
服务器·网络·php
newnazi7 小时前
RedHat10 安装MS SQL Server2025
linux·服务器·数据库