https://lbsucceed.github.io/posts/feed.xml

简单入门内网穿透

2025-06-02Updated on 2025-06-09

内网穿透原理

image-20250609210736551

我们目前搭建在公网的服务器frps是作为中转的路由,内网客户端 -> 公网服务器路由 -> 其他内网主机,内网客户端发送请求,然后发送给其他内网主机,内网主机连接成功反弹回请求到公网服务器再利用6070转发到我们内网4545端口上,从而达到内网穿透成功。

我的一开始的本意是想着在学校外连接学校内的服务器,我在实验室放了一个小服务器,用来存一些东西或者做mc服务器。

本教程使用的是0.37版本的frp

首先在windows上会自动认为是病毒,所以把win11的病毒防护关了再下载frp,https://github.com/fatedier/frp。

然后先连接阿里云服务器,当然,我们也可以直接用vnc登入的方式,参考:https://blog.csdn.net/qq_35668469/article/details/109536339

我们先用vnc登入,然后将sshd_config中的pubkeyAuthentication设置为yes

vi /etc/ssh/ssh_config

image-20250609143043252

这样我们就可以使用ssh登入了。

再linux服务器里面解压,

tar -zxvf frp_0.62.1_linux_amd64.tar.gz 

然后我们开始配置服务端:

配置frps.ini

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = [仪表盘用户名]
dashboard_pwd = [仪表盘密码]
token = [客户端连接密码]

接着配置客户端的frpc.ini

[common]
server_addr = [服务器IP]
server_port = 7000
token = [客户端连接密码]
tls_enable = true
[mc]
type = tcp
local_ip = 127.0.0.1
local_port = 25565
remote_port = 25565

image-20250609145929603

准备运行frp服务端

image-20250609150121222

如上图所示,先设置权限,然后再运行

之后给安全组添加端口(如果是阿里云的话)。点击“手动添加”,端口范围填写刚刚所填的三个端口(分三次添加),授权对象选择“0.0.0.0/0”

接着运行frp客户端

/frpc -c frpc.ini

运行成功后我们就可以通过内网穿透来进行连接客户端了。

 ssh -p port user_name@server_addr

接下来就可以通过这种方法爽玩MC了,大概测试了一下,几乎几个小时也花不了一个g。

点对点穿透

学习到另外一个更方便,或许说更方便的能力,就是p2p点对点穿透

该网络拓扑如下:

image-20250609210547745

优点:仅少量占用服务器带宽,占用的带宽可忽略不计,传输大文件利器!自然打游戏可能也会更好,哈哈。

先在服务端frps.ini进行配置

加上两行:

bind_udp_port = 7001
kcp_bind_port = 7000

接着在需要穿透的主机内网开启一个frpc客户端,将配置文件写入frpc.ini(客户端配置)

# 连接服务器配置
[common]
server_addr = ***.***.***.***
server_port = 7000
# 开启控制面板
admin_addr = 127.0.0.1
admin_port = 80
# 设置控制面板账号密码
admin_user = admin
admin_pwd = admin
# 设置需要穿透的名称,但是在服务器后台是看不到该连接的
[Mstsc]
# 设置协议xtcp
type = xtcp
# 设置密钥
sk = abcdefg
# 设置需要穿透的IP
local_ip = 127.0.0.1
# 设置需要穿透的端口
local_port = 3389

在另外一台控制端也配置好跟上面类似的配置,然后local_port修改一下,这样就可以连到localhost:3390了。

不过经过测试,实际上更慢一些,而且成功率似乎也不高,哈哈。

参考:https://gofrp.org/zh-cn/docs/examples/xtcp/

针对新手友好的frp内网穿透p2p教程(流量不走云服务器)