HG6543C1(3) --- 配置frp

news/2024/11/29 18:40:27/

在上一篇HG6543C1(2) — 公网IP端口转发文章中,我分享了HG6543C1光猫如何利用其公网IP进行端口转发,今天折腾下frp网络透传。

想要在网关上部署应用,需要了解两件事情:

  1. 应用程序/脚本放在什么位置
  2. 怎样自启动

1. 存储空间

  1. 参考HG6543C1(1) — 电信宽带天翼网关登录到网关的Telnet,执行mount命令,查看一下哪些目录是可读写的,感觉/opt/upt/apps目录和应用相关,故选择将应用放到这里。
$ mount
...
/dev/mtdblock6 on /flash type jffs2 (rw,relatime)
...
ubi2:Apps_ubifs on /opt/upt/apps type ubifs (rw,sync,relatime)
...
$ busybox fdisk -l # 这个命令也可以执行但输出的信息看不出什么东西
...
  1. HG6543C1是mips CPU,可以去GitHub/fatedier/frp下载编译好的frp的release包,我下载的是frp_0.43.0_linux_mips.tar.gz,frps解压后大约14M,拷贝到/opt/upt/apps/frps/frps,新建/opt/upt/apps/frps/frps.ini文件,内容如下:

vi /opt/upt/apps/frps/frps.ini

[common]
# 服务监听端口
bind_port = 14038
bind_udp_port = 14038
vhost_http_port = 14039
vhost_https_port = 14040
# 开启日志记录,滚动时间为3天
log_file = /opt/upt/apps/frp/frps.log
log_level = info
log_max_days = 3
# 向客户端报告错误原因
deltailed_errors_to_client = true
# 为了安全使能连接口令
authentication_method = token
token = xsp&5@
allow_ports = 14041-14042,14044-14047
  1. 关于将frps文件传输到网关上,可参考文章使用nc命令通过网络传送文件,网关侧没有nc命令,输入busybox nc即可。

2. 自启动

  1. Linux启动时会自动执行/etc/profile /etc/init.d/rcS等脚本,在/etc/init.d/rcS中发现,系统启动时会执行/flash/cfg/mirror.sh该文件不存在,但所处的位置是可写的,则我们可以创建该文件,然后将启动脚本写在这个文件中。
$ cat /etc/init.d/rcS
...
if [ -f /flash/cfg/mirror.sh ]; thenecho "set mirror automatically"/flash/cfg/mirror.sh &
fi
...
  1. 我们需要在网关上开启服务,则还需要设置网关对服务端口进行放行,这里可以采用HG6543C1(2) — 公网IP端口转发中的端口转发,将WAN口的数据转到LAN(192.168.1.1)上,也可以使用iptables命令进行端口转发或直接放行相关数据。

vi /flash/cfg/mirror.sh

#!/bin/sh# 我内网有一台主机IP地址是192.168.1.123,该主机对外提供了一些服务端口,这里ppp0是具有公网IP的WAN口,设置WAN口的前路由对收到的目的端口为15038-15041区间的数据转发至192.168.1.123 15038-15041端口上
iptables -t nat -I PREROUTING -j DNAT -i ppp0 -p tcp -m tcp --dport 15038:15041 --to-destination 192.168.1.123:15038-15041
iptables -t nat -I PREROUTING -j DNAT -i ppp0 -p udp -m udp --dport 15038:15041 --to-destination 192.168.1.123:15038-15041# 设置转发阶段对192.168.1.123的数据放行
iptables -t filter -I FORWARD -j ACCEPT -d 192.168.1.123# 对于网关上应用提供的服务端口进行放行
iptables -t filter -I INPUT -j ACCEPT -p tcp -m tcp --dport 14038:14046
iptables -t filter -I INPUT -j ACCEPT -p udp -m udp --dport 14038:14046# 后台启动frps
/opt/upt/apps/frp/frps -c /opt/upt/apps/frp/frps.ini &
# 后台启动telnet,这样就不用先通过网页启动telnet了,监听端口可以自行指定,注意telnet是不安全的,应避免直接暴漏到公网上
telnetd -p 18023 &

3. frpc

  1. 我有另一台电脑处在内网中,外界无法直接发起通信,可以用来测试frp内网透传,下载frp_0.43.0_windows_amd64.zip,编写配置文件。

vi frpc.ini

[common]
# 网关的(向日葵)域名或公网IP
server_addr = xxxxx
# frps的服务端口
server_port = 14038
# 连接口令
token = xsp&5@
# 日志文件,COMPUTERNAME是windows的一个环境变量,表示计算机名,不设置日志文件,则日志输出到命令行上
log_file = frps_{{.Envs.COMPUTERNAME}}.log
# frpc可以开启一个服务用于通过网页共享文件或通过网页进行配置管理(二选一)
admin_addr = 127.0.0.1
admin_port = 12345
# 访问frpc的网页会要求输入用户名密码
admin_user = asdrf
admin_pwd = 123456
# 使能下面一句话,可通过网页访问文件(只能下载)
#assets_dir = d:# 在服务端新建一个服务节点
[1_{{.Envs.COMPUTERNAME}}]
type = tcp
# 将本机的远程桌面(TCP3389)映射到frps的14046端口
local_ip = 127.0.0.1
local_port = 3389
remote_port = 14046
# 是使能一个组,可用于节点的备份
group = group1
group_key = key1[2_{{.Envs.COMPUTERNAME}}]
type = tcp
# 将frpc的服务(通过网页修改frpc配置)映射到frps的14047端口,注意frpc的网页是http不安全,应避免直接开放到公网
local_ip = 127.0.0.1
local_port = 12345
remote_port = 14047
group = group2
group_key = key2
  1. 在CMD中执行.\fprc -c frpc.ini即可连接到frps,之后可以在任意电脑上使用window自带的远程桌面,远程该内网电脑,远程时计算机的地址填写:xxxxx:14046xxxxx是网关的(向日葵)域名或公网IP。frpc的管理网页被映射到frps的14047端口,但网关未对WAN口的该端口进行放行,因此无法通过公网直接访问到frpc的管理网页,可以在网关的局域网中使用http://192.168.1.1:14047进行访问。

http://www.ppmy.cn/news/310465.html

相关文章

格兰仕的情绪化公关,或成近年6.18亮点

文 | 公关之家 作者:Leon 电商造节至今最火热的当属“双十一”购物节了,以至于阿里每年都会在节后以庆功会的名义真的举行“节日庆典”。而近年的六一八年中大促更是勇者无畏,不仅延续了双十一在十月后的消费激励效应,更是将年中…

从进军空气消毒赛道看格兰仕的改变

格兰仕又有新动作。 8月31日,格兰仕在北京举办“自由呼吸自在生活”健康生活解决方案全球首发会,发布了首款空气消毒机GZ20。 一、2020,健康成为共识 2020年席卷全球的严重疫情,引发了全世界人们对健康生活、健康环境的空前关注…

京瓷TCG070WVLPAANN-AN00 7.0寸工业液晶屏

京瓷 (Kyocera) 推出的TCG070WVLPAANN-AN00是一款采用a-Si TFT-LCD技术的7.0英寸液晶模组产品,它装配有WLED背光,无背光驱动,无触摸。具体的参数详情见如下表格。 京瓷TCG070WVLPAANN-AN00 7.0寸工业液晶屏 应用详情 基本信息面板品牌京瓷 (…

维修记录 - 格兰仕光波炉

家里的格兰仕光波炉,用了有两年了。最近突然不工作了,打开电源,灯亮,托盘也转动,但是不能加热了。 打了维修电话,说是3天之内上面维修。第三天中午,维修人员上门。打开机盖,换了一个…

Android系统原理性问题分析 - 系统 Root 的实现原理

声明 在Android系统中经常会遇到一些系统原理性的问题,在此专栏中集中来讨论下。Android低版本时经常听说Root系统,随着Android版本的升高,提Root的人越来越少了。不过我在系统开发时也有客户提出为系统Root的需求,所以在这里分析…

叠瓦式硬盘和垂直式硬盘怎么区分?

区分方法:硬盘容量在2TB以内的,存储如果是256MB的,那么是叠瓦式硬盘;垂直式硬盘,2TB以下是64G缓存。除此之外,您还可以在电脑中使用一些测试软件测试硬盘的随机读写性能,一般性能较差的硬盘就是…

STC12C5A60S2A/D转换

快速导航 STC12已封装好的函数库 STC12C5A60S2有8路高速10位A/D转换 本demo实现ADC通道0采集&#xff0c;并通过串口打印出来&#xff08;查询方式&#xff09; #include <STC12C5A60S2.H> #include <intrins.h>#define MAIN_Fosc 11059200L //宏定义主时钟HZ …

Shell | 查看分区文件系统方法的不完全总结

本文总结查看分区文件系统的几种方法。 Updated: 2022 / 8 / 23 Shell | 查看分区文件系统方法的不完全总结 dfpartedlsblkblkid参考链接 df df -T 命令查看。这个是最简单的命令&#xff0c;文件系统类型在 Type 列输出。只可以查看已经挂载的分区和文件系统类型。如下所示&…