frp:开源内网穿透工具

前言

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

官网GitHub:https://github.com/fatedier/frp
官网文档:https://gofrp.org/docs/

下载与安装

安装包:https://github.com/fatedier/frp/releases
以Ubuntu为例,执行命令下载:

wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

执行命令解压:

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

服务端(公网IP设备):保留文件 frpsfrps.ini
客户端(局域网设备):保留文件 frpcfrpc.ini

服务端配置(frps.ini)

[common]
bind_port = 8888
token = this_is_your_token

dashboard_port = 10000
dashboard_user = username
dashboard_pwd = password

vhost_http_port = 12888

配置完成后,服务端完成了这些事情:

  • 配置了 frp 服务监听端口 8888
  • 配置了访问秘钥为 “this_is_your_token”
  • 配置了 dashboard 的 port、用户名、密码,访问公网IP:10000,输入用户名密码即可登陆后台
  • 配置了监听 12888 端口代理 http 请求

快速启动服务端,执行:

./frps -c ./frps.ini

更多配置,详见:https://gofrp.org/docs/reference/server-configures/

客户端配置(frpc.ini)

[common]
# 公网IP和服务端监听端口,以及连接秘钥
server_addr = 188.188.188.188 
server_port = 8888
token = this_is_your_token

[ssh_local]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10099

[static_file]
type = tcp
remote_port = 11099
plugin = static_file
# 要对外暴露的文件目录
plugin_local_path = /home/xxxx/xxx/share
# 用户访问 URL 中会被去除的前缀,保留的内容即为要访问的文件路径
plugin_strip_prefix = static
plugin_http_user = uuuuuuusername
plugin_http_passwd = ppppppppassword

[web_01]
type = http
local_port = 12888
custom_domains = www.fuck.cn

配置完成后,服务端完成了这些事情:

  • common:把服务端的IP、监听端口告诉客户端,然后配置好秘钥以顺利连接
  • ssh_local:ssh连接,访问公网IP:10099 即可转发到内网机器22端口
  • static_file:公开文件,访问公网IP:11099 输入user和password就可访问共享文件
  • web_01:http映射,访问www.fuck.cn:12888 即可发起内网IP:12888 的HTTP请求

快速启动客户端,执行:

./frpc -c ./frpc.ini

注意:应配置防火墙放通上述端口。

开机自启

使用 systemd 来控制 frps,需要先安装 systemd,然后在 /etc/systemd/system 目录下创建一个 frps.service 文件,写入以下内容:

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini

[Install]
WantedBy = multi-user.target

管理frp服务:

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps

配置 frps 开机自启:

systemctl enable frps
### 关于Xilinx FPGA QSFP配置教程及应用实例 QSFP(Quad Small Form-factor Pluggable)是一种用于高速网络通信的小型可插拔光模块接口标准。它支持四个独立的全双工通道,通常应用于光纤通信领域中的高带宽需求场景。 #### 1. Xilinx FPGA QSFP硬件设计基础 在Xilinx FPGA中,QSFP模块的设计主要依赖其收发器资源(Transceivers)。这些收发器能够提供高达28 Gbps甚至更高的速率,适用于多种协议如PCIe、Ethernet和InfiniBand等。对于基于Kintex-7或Virtex UltraScale+系列的FPGA开发板而言,它们均具备足够的GT/GTH收发器来驱动QSFP模块[^3]。 例如,在ALINX推出的XILINX FPGA开发板(Kintex-7 XC7K325T) 上,虽然官方文档未特别提及对QSFP的支持情况,但由于该型号拥有多个高性能GTX transceiver channels,因此理论上完全可以适配并控制此类光学组件工作。 #### 2. 配置流程概述 以下是针对Xilinx平台下典型QSFP初始化过程的一个简化描述: - **读取模块信息**: 使用I²C总线访问内部寄存器获取具体参数比如厂商ID, 波长范围等等. - **设置信号模式**: 根据实际应用场景决定采用单模还是多模传输方式以及相应的工作频率. - **校准链路性能**: 调整预加重(pre-emphasis), 均衡(equalization)等相关电气特性直至达到最佳状态为止. 下面给出一段伪代码表示如何通过SDK环境完成上述操作: ```c #include "xparameters.h" #include "xiicps.h" XIicPs IICInstance; // 初始化函数定义省略... void Configure_QSFP(void){ int Status; /* Start the device */ Status = XIicPs_CfgInitialize(&IICInstance, XPAR_XIICPS_0_DEVICE_ID, XPAR_PSU_I2C_0_BASEADDR); if (Status != XST_SUCCESS){ return XST_FAILURE; } // 更多功能实现细节... } ``` 以上片段仅作为示范用途展示基本框架结构;真实项目里还需要考虑更多因素诸如错误检测机制建立等问题。 #### 3. 应用案例分享 SDAccel 是由 AMD 提供给开发者的一套完整的软件工具集,旨在简化异构计算系统的编程模型。当涉及到像XUP-P3R这样的高端加速卡时,利用OpenCL编写应用程序变得尤为方便快捷[^2] 。假设我们希望构建一个简单的数据包转发引擎,则可以通过如下步骤达成目标: - 创建一个新的工程并将目标设备指定为我们所拥有的含XSFP端口的特定版本号的XUP-P3R 加速卡。 - 描述清楚输入源地址空间布局形式及其对应的输出目的地位置关系图谱。 - 编译运行测试验证预期功能表现是否满足最初设定指标要求。 值得注意的是,尽管这里讨论的重点放在了技术层面的操作指南上面,但在真正投入生产之前还应该仔细评估成本效益分析报告以及其他非功能性约束条件的影响程度等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值