技术 · 2021年12月15日 0

使用frp的XTCP点对点传输流量的步骤

笔者需要使用内网穿透给Minecraft服务器其他管理员穿透网盘来管理服务器文件,考虑到穿透目标只有一个并且为了服务器其他数据安全性所以并没有采用之前提到过的n2n进行。由于笔者用的是流量付费的frp直接用TCP隧道或者http(s)隧道又比较浪费,于是选用XTCP进行点对点连接来处理。

笔者采用的frp服务商为Sakurafrp,因此此处以此为例(非工商),其他服务商应该大同小异。

建议您先参照此博文测试NAT类型,若为对称型则基本无法成功。

一、新建XTCP隧道

进入“穿透”-“隧道列表”,点击隧道列表右上方的新建隧道。

选择一个frp服务器,选择XTCP隧道,自定义隧道名、备注。

在本地IP处和本地端口处分别填写在您要穿透的服务在内网的地址和端口。(如本机的http服务可以是127.0.0.1和80)

确认无误后点击“创建”。

二、在服务器上运行frp

(此处仅针对命令行客户端说明)

隧道创建后点击隧道右侧的“操作”-“配置文件”,复制上方内容(格式为“-f 密钥:隧道号”的字段)。

打开终端,输入frpc+刚才复制的内容。(完整的是“frpc -f 密钥:隧道号”,“frpc”可改为您的计算机上frpc的路径)

如果要在后台保持运行可以使用screen -dmS 名称 命令

若出现“隧道启动成功”字样则说明成功,此时在网页端可见节点在线。

三、在要访问的客户机上运行frp

(此处仅针对命令行客户端说明)

在frpc的根目录下新建frpc.ini文件。

仍然打开上边提到“操作”-“配置文件”,复制下方的内容,内容应当类似下方。

[common]
protocol = tcp
server_addr = 你设置的服务器的IP地址
server_port = 你设置的服务器的端口,应该是7000

user = 您的密钥
token = SakuraFrpClientToken
sakura_mode = true
use_recover = true

tcp_mux = true
pool_count = 1

[您设置的隧道名]
type = xtcp

local_ip = 您之前设置的地址
local_port = 您之前设置的端口

tcp_sk = 另一串密钥

将这些内容复制到您的frpc.ini中,下边开始修改这些内容。

  1. [common]部分不动,与原来保持一致;
  2. 删除“local_ip”和“local_port”所在行;
  3. 在您设置的隧道名(如“sample”)后加入“_visitor”(即变为如“sample_visitor”);
  4. 在type下边加入新一行“role = visitor”;
  5. 继续加入新一行“server_name = 您设置的隧道名”(如sample);
  6. 继续加入新一行“bind_addr = 穿透过来在客户机本地访问的IP地址”(如0.0.0.0或仅在本机访问为127.0.0.1);
  7. 继续加入新一行“bind_port = 穿透过来在客户机本地访问的端口”。
[您设置的隧道名_visitor]
type = xtcp
role = visitor
server_name = 您设置的隧道名
tcp_sk = 另一串密钥
bind_addr = 127.0.0.1
bind_port = 9080

完成后保存并运行frpc。

frpc -c frpc.ini

此时对穿透的服务进行访问,发现能够成功访问,穿透成功。

如果有疑问可以在评论区留言。未经许可不得转载。

心情表态
+1
0
+1
1
+1
0
+1
0
+1
0
+1
0