小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程

最近朋友需要,想通过5G手机玩3d大作的游戏,或者用CRT显示器玩,这时我就要解决几个问题:

1、固定IP
2、网络延时
3、访问者的机器,不能考虑其性能,只能当它是个显示器,才能流畅;


采取两种方法尝试,与比较
第一种 通过服务器连接
第二种 P2P连接;通过服务器连接后,客户端和访问端隧道开启打洞,无视服务器带宽(延时完全取决于客户端和访问端的自身带宽)(很有意义)


两种方式区别:第一种方式,访问端不用在系统里配置frp软件,直接用远程桌面应用程序就能访问远程电脑;而第二种,需要在访问端,客户端,服务器端都配置好frp程序,形成一个三角形网络结构,当通讯成功后,就客户端和访问端之间访问;第一种方法简单,第二种节省流量,且速度奇怪,就好像迅雷下载。


下载连接在文章最后


开始动手

第一种方法尝试-测试成功

解决第一个问题,很容易,我在AWS上租用了个最低配的EC2服务器,带宽1M(这里我特意强调1M,是因为后面我将要通过P2P方法,实现服务器带宽不够的情况下,通过打洞方式,解决这个问题),如何申请服务器,我就不描述了,各位可以百度,阿里,腾讯都可以,核心方法一样,下图是我的EC2服务器的【安全组】截图,你要访问的端口一定要在这里打开,不然无法使用,当然后期有方法验证端口问题;
小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第1张图片

服务端配置

通过ssh登录到服务器中,下载FRP的linux版本,并进行配置,下载连接我后面会放出,下图是frps.ini的文件配置内容
记得给出frp.ini权限:chmod 777 frps.ini
小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第2张图片
启动服务端的frps服务:
nohup ./frps -c frps.ini
小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第3张图片
让服务在后台运行:
nohup ./frps -c frps.ini &
nohup: ignoring input and appending output to ‘nohup.out’
jobs (命令查看服务,出现以下,正常服务了)
[1]+ Running nohup ./frps -c frps.ini &
小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第4张图片

客户端配置(win的配置方法,linux方法相同)

假定你下载了“frp_0.22.0_windows_amd64.zip”,将其解压在了C盘根目录下,并且将文件夹重命名为“frp”,可以删除其中的frps和frps.ini文件。
用文本编辑器打开frpc.ini,与服务端类似,内容如下(我们以登录win的远程桌面为例)

[common]
server_addr = 1.1.1.1(你的远程IP地址)
server_port = 7000
token = xxxxx(你的登录服务器的密码,和客户端的token要一致)
[rdp]
type = tcp(通讯协议)
local_ip = 127.0.0.1           
local_port = 3389
remote_port = 7001  (远程开放的端口)
将客户端frp文件夹放入C盘,并制作一开机自动启动的frp.bat文件

小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第5张图片
打开个记事本,复制下面的代码,并保存为frpc.bat,将frp.bat文件放入windows的启动文件夹位置:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,每次开机自己启动

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\frp
frpc -c frpc.ini
exit

测试启动(启动成功)

打开win的远程桌面,或者通过一下指令

cmd -> mstsc -> 你的远程IP地址:打开的端口号

小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第6张图片

第二种P2P连接方法

我们先看这个逻辑图
小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第7张图片
frpc(客户端)与Visitor(访问端)间通过UDP传输(适合frpcs服务端小水管食用,Client于Visitor之间不受服务端带宽限制,主要看C与V的出口带宽和你的宽带质量。)

frp 提供了一种新的代理类型 xtcp 用于应对在希望传输大量数据且流量不经过服务器的场景。使用方式同 stcp 类似,需要在两边都部署上 frpc 用于建立直接的连接。但目前不太稳定,我们这里使用stcp测试。

服务端配置

frps 除正常配置外需要额外配置一个 udp 端口用于支持该类型的客户端:

bind_udp_port = 7001

小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第8张图片

客户端frpc配置(图右)

启动 frpc,转发RDP远程桌面 服务,配置如下,不需要指定远程端口:

[common]
server_addr = 1.1.1.8
server_port = 7000
token = xxxxxxxx

[p2p_rdp]
type = stcp
sk = 1234
local_ip = 127.0.0.1
local_port = 3389

代码含义如下:

[common]
server_addr = 你的frpc服务器地址,上面用1.1.1.8举例
server_port = 你的frpc服务器端口,注意vps的iptables、firewalld或者vps管理端安全组放行该端口!  
token = 本端与服务器端认证密码,与服务器端配置一致!

[p2p_rdp]  名字稍微注意一下,下文中visitor端配置用到。
type = stcp   重点!!拓扑图中示例为xtcp,就稳定性和使用成功率而言目前xtcp不够成熟,优选stcp协议!
sk = client端和visitor端认证密码,注意两端要一致,与服务器无关
local_ip = 127.0.0.1
local_port = 你需要开放出去的端口,拓扑中以windows远程桌面为例

在要访问这个服务的机器上启动另外一个 frpc,配置如下:

[common]
server_addr = 1.1.1.8
server_port = 7000
token = xxxxxxxx

[RDP_visitor]
type = stcp
role = visitor
server_name = p2p_rdp
sk = 1234
bind_addr = 127.0.0.1
bind_port = 53389

代码含义如下:

[common]
server_addr = 1.1.1.8
server_port = 7000
token = xxxxxxxx

[RDP_visitor]  随意
type = stcp  与client端一致
role = visitor  好理解,这是“访客端”
server_name = p2p_rdp  注意上文中的提示,与client端配置一致
sk = 1234   还要再讲一次不?看笔记
bind_addr = 127.0.0.1  
bind_port = 53389 你远程配置的tcp端口号

测试启动(启动成功)

打开win的远程桌面,或者通过一下指令

cmd -> mstsc -> 你的远程IP地址:打开的端口号

小米手机玩转photoshop/魔兽世界,无需固定IP,实现内网穿透详细教程,及踩坑过程_第9张图片

大家注意看,打通方式的不同,访问的是一个电脑远端,但访问地址却不一样,第二种就是P2P的方式,速度会很快,而且不用考虑服务器带宽,非常好。

过程中遇到的问题

  • 整个测试过程,大问题没遇到什么,主要是在服务器端的端口开或者没开,会记错,年纪大了。。。。
  • 重要,重要,重要,访问端和客户端最好同运营商,意思就是要么都电信,或者要么都移动、联通,不然延时高,有卡顿,同运营商完全没有卡顿现象
  • 还有一开始安全组设置的时候,选错安全组。。。郁闷
  • 另外,机器务必打开运行【远程连接】的选项,找不到自己百度吧,
    还有个坑,Windows的家庭版远程连接被阉割,要升级到专业版才能看到打开远程连接的选项。
  • 手机APP端下载微软的【远程桌面】输入远程IP:端口既能访问你的电脑,目前我只测试了手机端用第一种方式,可以;第二种方式需要root手机,和安装虚拟机,还没空测试。
  • 小米手机测试横屏问题,打开【远程桌面】前,把手机横屏放着,哈哈,下图都是我的手机打开的远程电脑应用。

【teamviewer】,人人动手你咋办。。。


各个版本FRP下载链接:

https://download.csdn.net/download/lijiajin1228/12233102

你可能感兴趣的:(Linux基础)