利用openwrt和frp实现内网穿透

本文详细介绍了如何在拥有公网IP的ECS上部署frpc服务,作为服务器,同时在OpenWRT路由器上配置frpc作为客户端。涉及公网设置、frps服务的启动、openwrt上的frpc配置,以及Windows远程开机和桌面映射的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

  1. frpc
  2. 拥有公网ip地址的ECS
  3. 一台安装有openwrt的路由器
  4. 内网主机

frp分为frps和frpc,frps用于服务器,frpc用于客户端,本示例将公网ecs作为frp的服务器,openwrt路由器作为frp的客户端

公网设置

下载frps到公网ecs,在frps所在目录下创建一个frps.ini用于配置frps。
其中frps.ini的内容为:

[common]
bind_port = #和客户端通信的端口
token = #用户端连接的密码
dashboard_port = #监控面板的端口
dashboard_user = #监控面板的用户名
dashboard_pwd = #监控面板的密码
enable_prometheus = true # 建议默认为true
log_file = /var/log/frps.log #日志
log_level = info #日志级别,建议info
log_max_days = 3 #保存日志最大天数,建议3天或者7天

其中,bind_port和token用于和openwrt路由器上安装的frpc保持一致,有dashboard_port、dashboard_user以及dashboard_pwd用于在这台ecs上查看frps的状态

开机启动

在/usr/lib/systemd/system下创建frps.service,内容如下:

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/frps/frps -c /usr/local/frps/frps.ini

[Install]
WantedBy=multi-user.target

然后执行systemctl start frps.service和systemctl enable frps.service

openwrt设置

fprc设置

frpc

远程开机设置

windows远程开机的话,百度一下就可以了。
流程就是,在手机上下载一个wake on lan,通过这个app的远程开机端口连接到公网ecs的远程开机端口,然后公网ecs的这个远程开机端口连接到openwrt的frpc的远程开机端口,通过广播唤醒windows主机
wol

远程桌面映射设置

rpd

注意的是这里要在公网ecs上放开bind_port,dashboard_port, 远程开机以及远程桌面的端口。
本地windows主机需要放开3389的端口,建立入站规则

### 如何在 OpenWRT实现内网端口穿透配置 #### 准备工作 为了使内网设备能够被外部网络访问,在OpenWRT上需先完成基础环境搭建,这包括但不限于安装必要的软件包以及准备用于内外网通信的服务程序。对于想要通过互联网控制局域网内部资源的情况来说,通常会选择部署类似FRP这样的内网穿透解决方案。 #### 配置 FRPC 实现内网穿透 ##### 安装依赖项服务组件 确保已连接至Internet并更新软件源列表后,执行命令来获取最新版本的应用程序及其依赖关系: ```bash opkg update && opkg install frp ``` 此操作会下载并设置好Frp客户端(frpc),它是用来建立从公共网络到私有LAN之间的稳定链接的关键部分[^3]。 ##### 编辑 Frpc 配置文件 编辑`/etc/frp/frpc.ini`以定义如何桥接外网请求与目标机器间的交互过程。下面是一个简单的例子,它展示了怎样将来自指定域名的HTTP流量转发给位于192.168.0.100地址处运行Web服务器的一台计算机: ```ini [common] server_addr = x.x.x.x # 这里填写公网VPS IP 地址 server_port = 7000 # 填写服务端监听端口号,默认即可 [web] type = http # 协议类型 local_ip = 192.168.0.100 # 内网真实提供服务主机IP local_port = 80 # 对应上面提到的服务实际使用的端口 custom_domains = bgs.xxx.com # 自定义解析过来的域名 ``` 上述配置意味着当有人在外网上尝试打开`http://bgs.xxx.com:9004`时,实际上是在浏览处于家庭Wi-Fi下的那台电脑所托管的内容。 ##### 启动并验证Frpc状态 保存更改后的配置文档之后,可以通过如下指令启动frpc进程,并将其设为开机自启项目之一;接着利用日志查看功能确认一切正常运作: ```bash /etc/init.d/frpc start /etc/init.d/frpc enable logread | grep frpc # 查看最近的日志记录,判断是否成功连通远端节点 ``` 如果以上步骤均顺利完成,则表明已经成功建立了由外界通往家中的安全通道,允许特定类型的网络活动穿越防火墙限制而无需暴露整个内部结构于风险之中。 #### 使用 LuCI 图形界面简化流程 (可选) 除了手动编写文本形式的设定之外,OpenWRT还提供了基于浏览器的操作面板——LuCI,使得即使是不太熟悉Linux命令行的新手也能轻松搞定复杂的参数调整事务。进入对应菜单选项卡按照提示逐步输入所需信息同样可以达到相同的效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值