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

云服务器推荐:雨云官网

相关推荐
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode9 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql