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

云服务器推荐:雨云官网

相关推荐
跨境数据猎手30 分钟前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA1 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
mounter6251 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel
会Tk矩阵群控的小木1 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
佛山个人技术开发2 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode
The Sheep 20232 小时前
Vue复习
linux·服务器·数据库
OpsEye3 小时前
系统负载高一定是CPU问题吗?
运维·cpu·it
源图客4 小时前
Minio配置HTTPS服务
服务器·网络协议·https
修炼室4 小时前
外网环境原生直连校内服务器:基于内网穿透 + SSH 密钥认证的完整实践指南
服务器·ssh·php
Titan20244 小时前
Linux动静态库
linux·服务器·c++