三、udp点对点穿透教程
3.1.配置服务端frp并运行
3.1.1.修改服务器frp配置文件frps.ini
宝塔双击frp目录下frps.ini进入编辑,将frps.ini文件内容替换成下面,下面#后面的内容为注释内容,可复制可不复制,修改好后左上保存文档或直接快捷键ctrl+s保存(注意注释最好不要写在右边,等号两边最好不要有空格)
[common]
#默认连接端口,可以自定义端口
bind_port=7000
#xtcp配置UDP端口,可以自定义端口
bind_udp_port=7001
#连接密钥,可要可不要,建议加上更安全,可以自定义,相当于密码
token=12345678

3.1.2.开放端口
上面用到的端口要去宝塔开放端口(阿里云可能还要去安全组开放端口),点击宝塔面板左侧安全按钮,在放行端口那一行填入端口号和备注,填好后点击右边的放行,放行好的端口就会显示在下方,我这里放行7000和7001端口,你上面用的什么端口就放行什么端口

3.1.3.启动服务端frp程序
使用ssh工具连接上服务器,这里我使用的是xshell工具,使用教程,也可以使用宝塔面板内置的ssh工具,连上ssh后先进入frp目录,输入 cd / 后回车进入了服务器根目录,继续输入 cd 你的frp目录 后回车进入frp目录,我这里frp目录为www/wwwroot/frp,所以我输入 cd www/wwwroot/frp 就进入frp目录了。继续输入命令 ./frps -c frps.ini 启动frp服务端,如下图出现蓝色字体就可以了,如果出现黄色或者其他颜色的就说明哪里有问题,可以复制代码百度以下。启动成功后请不要关闭ssh连接程序,因为关了窗口会关闭frp程序,后面会给出解决方案

3.2.配置被控制端的frp并运行
3.2.1.修改被连接端frp配置文件frpc.ini,注意是frpc.ini不是和上面服务器frps.ini同一个文件
电脑记事本软件打开frpc.ini,将frpc.ini文件内容替换成下面,修改server_addr为你的服务器ip地址,修改token值为服务器端token值,下面#后面的内容为注释内容,可复制可不复制,修改好后快捷键ctrl+s保存(注意注释最好不要写在右边,等号两边最好不要有空格)
[common]
#服务器ip地址,填你自己的服务器ip
server_addr=x.x.x.x
#服务器连接端口,和步骤3.1.1中bind_port相同
server_port=7000
#与服务器对应的连接密钥
token=12345678
#[]内可以自定义命名,我这里命名为p2p
[p2p]
#类型为xtcp协议
type=xtcp
#控制端电脑与被控端电脑的密钥,可以自定义密码
sk=520china
#本地ip
local_ip=127.0.0.1
#本地远程桌面端口
local_port=3389

3.2.2.运行frp程序
打开电脑cmd命令行(win10可以快捷键win+s打开搜索,然后搜索cmd),在c盘的直接输入命令 cd 你的frp所在的目录路径 后回车进入frp目录,放在别的盘的先输入 盘符: 回车进入该盘(例如放在D盘,先输入 D: 回车),再输入上面的 cd 你的frp路径 回车就进入了。进入了frp目录后,输入命令 frpc.exe -c frpc.ini 启动frp(如果跳出是否允许访问网络点允许),启动完毕后同样不要关闭cmd窗口,因为关了窗口会关闭frp程序,后面会给出解决方案


3.3.配置控制端的frp并运行
3.3.1.修改被控制端frp配置文件frpc.ini,注意是frpc.ini不是和服务器端frps.ini同一个文件
电脑记事软件打开frpc.ini,将frpc.ini文件内容替换成下面,修改server_addr为你的服务器ip地址,修改token值为服务器端token值,修改server_name为被控制端的udp连接名称,修改sk为被控制端sk值(如下图),下面#后面的内容为注释内容,可复制可不复制,修改好后快捷键ctrl+s保存(注意注释最好不要写在右边,等号两边最好不要有空格)
[common]
#服务器ip地址,填你自己的服务器ip
server_addr=x.x.x.x
#服务器连接端口,和服务端中bind_port保持一致
server_port=7000
#与服务器对应的连接密钥,与服务端token保持一致
token=12345678
#[]内可以自定义命名,我这里命名为p2p_visitor
[p2p_visitor]
#类型为xtcp协议
type=xtcp
#角色是visitor访问端
role=visitor
#要与需要连接的电脑端名字相同
server_name=p2p
#电脑与本电脑的密钥,可以自定义密码
sk=520china
#本地ip
bind_addr=127.0.0.1
#本地的端口去发送UDP包
bind_port=6666


3.3.2.运行frp程序
和操作3.2.2一样,打开电脑cmd命令行(win10可以快捷键win+s打开搜索,然后搜索cmd),在c盘的直接输入命令 cd 你的frp所在的目录路径 后回车进入frp目录,放在别的盘的先输入 盘符: 回车进入该盘(例如放在D盘,先输入 D: 回车),再输入上面的 cd 你的frp路径 回车就进入了。进入了frp目录后,输入命令 frpc.exe -c frpc.ini 启动frp(如果跳出是否允许访问网络点允许),启动完毕后同样不要关闭cmd窗口,因为关了窗口会关闭frp程序,后面会给出解决方案


四、测试是否能连接远程桌面
完成前面三个步骤,就完成了穿透,现在测试是否可以远程连接到电脑了
4.1.被控制端启动远程桌面
被控制端点电脑依次打开 设置——>系统——>远程桌面——>勾选启用远程桌面,点击下方选项选择可远程访问这台电脑的用户,添加你想允许连接的用户,那么控制端只有登录该用户才能控制


4.2.控制端连接远程桌面
快捷键win+s打开搜索,搜索远程桌面连接并打开,ip为控制端bind_addr的值,端口为bind_port值,点链接后输入你添加的被控制端的用户信息完成连接


连接成功,网速很快,要是传统的tcp穿透走服务器带宽的话1m带框很卡

五、frp设置后台运行
到目前为止已经完成了穿透和连接,但是不能关闭ssh和cmd frp就会自动关闭,我们可以给frp设置后台运行和
5.1服务器frp后台运行
在服务器xshell页面按ctrl+c键停止frp,进入frp目录下(目前是在frp目录下,但下次连接ssh的目录不是frp目录)输入命令nohup ./frps -c frps.ini >/dev/null 2>&1 &回车,出现端口就成功了,如果要看日志就输入cat nohup.out回车,然后关了xshell也没关系了,frp已经在后台运行了,需要关闭frp的见下图二,参考frp后台启动与停止


5.2.win版frp后台运行
觉得没啥必要,要连就开个cmd不动,不连就关了,要想后台运行的可以参考win版frp后台运行
终于肝完了,我感觉要是还有一部分没写我肯定就搁着了,因为在写的过程自己也遇到很多问题,也不断的百度谷歌解决方法,然后慢慢修复,哪些问题本章不再讨论,可能会专门开一篇frp的错误及解决方法(可能得休息好几天后 ),如果你看本篇教程遇到任何问题可以评论留言,我会尽快回复,最后,能留下小小的赞吗
转载标明出处
本文链接:https://imold.wang/computer/420.html
仿冒必究
Comments 10 条评论
lz你好,xtcp可以用于udp端口的穿透吗,使用场景是与小伙伴联机游戏,游戏是使用的udp端口。研究好久也找了好久,没有找到相关udp端口的文章。搜索出来大部分例子都是 拿ssh-22端口举例,,,
@ 可以的呀,udp穿透要看网络环境,可以搜索nps内网穿透,也是可以进行udp穿透的
@Richer Chen 噢噢!感谢lz,我去下载了nps用一下,感觉也跟frp各项功能一样的呀!我之前也只会使用udp转发,然鹅受限于vps感人的带宽小水管。。。一直不尽如人意,最近才了解到可以使用xtcp来达到p2p连接,可以绕开服务器的带宽限制。但是不知道要怎么配置xtcp才能转发udp端口呢
lz的简称很详细!就是这里有两个小问题
1.打洞成功了,关掉两个frpc还可以继续链接吗,为啥我两个都关了还能链接
2.访问端配置的bind_addr和bind_port是干啥用的,感觉我随便填也不影响连接啊
@轻云 你可能挂在后台运行没杀掉
bind_ip是绑定ip
bind_port是服务器要使用的端口
@轻云 这是一条私密评论
繁琐。。。。。。。。。。。
博主教程很用心,有帮到忙。互联网有你更精彩!
这个是不是对服务端有版本要求啊。我的的0.38.0显示 start error: xtcp is not supported in frps
lz的教程真详细,感谢