boxmoe_header_banner_img

Hello! 欢迎来到哔哔哔!

加载中

文章导读

利用Frp搭建内网穿透远程控制电脑


avatar
Orange August 3, 2025 49

1.为什么需要内网穿透?

  • 内网设备没有公网IP
    家庭宽带、公司网络多数使用 NAT,共用一个公网IP,内部设备只有私有IP(如 192.168.x.x)。

  • 防火墙阻止外部访问
    路由器和防火墙默认不允许外部主动访问内部服务(如网站、NAS、摄像头)。

  • 远程访问需求短代码选择!

    • 想从外网访问家里的 NAS、服务器、监控设备

    • 想把家里的开发环境或 API 暴露给外部测试

    • 想远程控制内网电脑(RDP/SSH)

2.内网穿透的原理

 核心是在内网和外网之间建立一条双向通道。常见实现方式有:

  1. 基于端口映射(Port Forwarding)

  • 在路由器/防火墙上配置端口转发规则,把公网IP的某个端口映射到内网机器端口。

  • 缺点:需要管理路由器,动态IP变化时麻烦,不适合没有公网IP的情况。

2. 基于第三方中转服务器

  • 内网客户端主动连接中转服务器(公网服务器)。

  • 外网访问时通过中转服务器转发流量给内网客户端。

  • 常用工具:

    • frp(Fast Reverse Proxy)

    • ngrok(国际知名)

    • cpolar(国内常用)

    • ZeroTier / Tailscale(虚拟局域网)

3. 打洞技术(P2P NAT Traversal)

  • 通过 UDP/TCP 打洞技术,让两个 NAT 后的设备直连。

  • 常用于 WebRTC、VoIP、游戏联机

3.常见应用场景

  • 搭建个人网站:在家电脑运行 web 服务,让外网能访问。

  • 远程桌面 / SSH:不改路由器设置即可远程控制家里电脑。

  • 文件共享 / NAS:外网访问家里的存储设备。

  • 物联网(IoT)设备:远程控制摄像头、智能家居。

  • 开发调试:向客户展示本地运行的 API / 小程序。


4.配置Frps服务端

  • 利用Frp搭建内网穿透
  • 首先需要准备一台具备公网ip的Linux/Windows机器搭建服务端,下面以Linux为例:
  • 安装Linux服务端,执行命令
    wget -N https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
  • 执行解压命令
    tar -zxf frp_0.54.0_linux_amd64.tar.gz
  • 其中,frps是服务端程式,frpc是客户端程式
  • 进入安装目录,按照下面示例修改frps.toml配置文件:
bindPort = 8000                                               ##服务端连接端口
auth.method = “token”                                    ##开启密码验证
auth.token = “password”                                ##连接密码
webServer.addr = “0.0.0.0”
webServer.port = 8001                                   ##网页管理端口
webServer.user = “admin”                             ##管理员账号
webServer.password = “password”             ##管理员密码
  • 运行 FRP 服务端:

    1.前台运行:
    ./frps -c ./frps.toml     ##在FRP目录下输入此命令

    2.后台运行:
    nohup ./frps -c ./frps.toml &   ##在FRP目录下输入此命令

 

3 .Centos后台运行frp

vi /lib/systemd/system/frps.service[/precode]写入以下内容

[Unit]
Description=frps service After=network.target syslog.target Wants=network.target
[Service]
Type=simple
ExecStart=frps的实际安装目录/frps -c 实际安装目录/frps.toml
[Install]
WantedBy=multi-user.target

4.关闭服务端

输入命令查看线程号 ps -aux|grep frp| grep -v grep
结束frp线程 kill -9 ******(线程号)

  • 使用下面命令启动frps服务端

  • systemctl start frps
    开机启动
    systemctl enable frps
    关闭开机自启
    systemctl disable frps
    重启程序
    systemctl restart frps
    停止程序
    systemctl stop frps
    查看应用日志
    systemctl status frps

  • 配置客户端

  • 在客户端设备(需要被远程控制)编辑客户端配置文件frpc.toml
  • serverAddr = “服务端IP地址”
    serverPort = 8000
    auth.method =”token”
    auth.token = “password”                            ##与服务端设置的密码需一致[[proxies]]
    name = “awese”                                            ##客户端名称,不可重复
    type = “tcp”                                                   ##通讯协议,tcp/udp
    localIP = “127.0.0.1”
    localPort = 3389
    remotePort = 1060                                     ##连接端口,不可重复
  • 运行客户端

    1.打开 cmd
    2.进入客户端安装目录
    3.输入命令 frpc -c frpc.toml

  • 客户端设置到此结束,现在已经可以正常连接了,但是每次重启后都需要手动运行客户端,为了方便可以根据下面步骤将客户端程序打包成服务进程,以便可开机自启。

  • Windows将FRP设置为服务并开机自启

  • 利用WinSw打包frp服务端程序作为服务进程,开机后自启并在后台运行此处需要使用到winsw 下载地址:https://github.com/kohsuke/winsw/releases下载解压至任意目录并进入目录;

    这里将下载WinSw_x64.exe重命名为winsw.exe了,以方便后面操作;

    创建与winsw同名的配置文件,以下为代码,后缀为 .xml

  • <service>
    <id>frpc</id>
    <name>frpc-service</name>
    <description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
    <!– 要运行的程序路径 –>
    <executable>frpc</executable>
    <!– 携带的参数 –>
    <arguments>-c frpc.toml</arguments>
    <!– 日志模式 –>
    <logmode>append</logmode>
    <!– 指定日志文件目录(相对于executable配置的路径) –>
    <logpath>logs</logpath>
    </service>
  • 开始使用:

  • 打开cmd或者powershell,用CD命令进入安装目录,然后执行注册服务命令,再执行启动服务命令
  • //注册服务
    winsw.exe install
    //卸载服务
    winsw.exe uninstall
    //启动服务
    winsw.exe start
    //停止服务
    winsw.exe stop
    //重启服务
    winsw.exe restart
    //查看状态
    winsw.exe status

  • 如果提示:FATAL – WMI Operation failure: AccessDenied 则需要以管理员方式运行CMD再试;
    从服务里面看 可执行文件的路径是:”D:\Software\frp\frp_0.54.0_windows_amd64\winsw”实际是 winsw.xml 中 executable 中的路径 不影响功能

                    


评论(0)

查看评论列表

暂无评论


发表评论