用云服务器搭建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配置一次之后基本不需要管,家里设备开机自动连上,外网随时能访问,挺方便的。有具体场景不知道怎么配的欢迎评论区问。

云服务器推荐:雨云官网

相关推荐
代码中介商2 小时前
Linux 进程间通信(IPC):管道与信号量完全指南
linux·运维·服务器
mjhcsp2 小时前
雨云服务器使用方法(入门1)
服务器
W.W.H.2 小时前
远程连接协议(SSH\Telnet\FTP\Serial等)
运维·arm开发·经验分享·ssh
oioihoii2 小时前
OpenClaw桌面 UI 自动化中的 Token 消耗问题几种可能的优化方向
运维·ui·自动化
b***25112 小时前
18650与21700电芯在锂电池自动化生产线中的协同发展
运维·自动化
Johnstons2 小时前
网络抓包留存平台怎么选:全量留存、按需抓包与传统镜像方案的边界、场景与判断标准
运维·服务器·网络·网络运维
晨晖22 小时前
linux命令7(systemctl服务进行管理)
linux·运维·服务器
不仙5203 小时前
Hermes 接入飞书(Feishu/Lark)部署文档
linux·服务器·ai
bukeyiwanshui3 小时前
222第一阶段考核-实验-模拟题
运维