0%

frp内网穿透

内网穿透介绍

摘自百度百科

  内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。
  UDP 内网穿透的实质是利用路由器上的NAT 系统。NAT 是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。NAT可以完成重用地址,并且对于内部的网络结构可以实现对外隐蔽。

简单的拿游戏来说,就是即使不在同一个局域网下,大家也可以联机一起玩!

准备工具

  1. 一台云服务器(阿里,腾讯均可,建议选择国内)
  2. 需要内网穿透的机器
  3. 局域网

正式安装

服务器端安装

一、下载frp

1
2
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
tar -zxvf frp_0.21.0_linux_amd64.tar.gz #解压

可以自己选择合适个版本安装,解压到合适的目录

二、配置frp的配置文件
服务器端的配置文件是frps开头的,客户端是frpc开头的,删除掉多余文件

1
rm -rf frpc*

修改服务端配置文件vim frps.ini
1
2
[common]
bind_port = 7000

一般是默认的上面的配置,不需要更改

客户端安装

1
2
3
4
5
6
7
8
9
10
[common]
server_addr = xxx.xxx.xxx.xxx #frp服务端地址,必须是公网ip或者域名,这里假设为xxx.xxx.xxx.xxx
server_port = 7000 #frp服务端端口,即填写服务端配置中的 bind_port

[ssh]
type = tcp #连接类型,填tcp或udp
local_ip = 127.0.0.1 #填127.0.0.1或内网ip都可以
local_port = 22 #需要转发到的端口,ssh端口是22
remote_port = 6000 #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访
#问客户端的 local_port,如果填0则会随机分配一个端口

非常重要的一点,必须要在阿里服务器上面将6000、7000的端口打开,否则ssh连接会被拒绝!

启动frp穿透服务

服务端 :screen ./frps -c frps.ini
客户端 :screen ./frpc -c frpc.ini

个人习惯,一般使用screen后台启动程序,nohup也可以,推荐后台启动,不然终端掉了,frp服务就没了

登录

使用ssh远程登录,ip地址选择服务器地址或者域名,端口号选择6000,输入用户名和密码就可以远程登录了!

多个内网设备配置

对于不同的设备,需做不同的配置,避免出现冲突:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 内网机器1:
[ssh] #<==不同点
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 #<==不同点

# 内网机器2:
[ssh1] #<==不同点
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001 #<==不同点

另外,可以在客户端添加一个开机自启动程序,大家自行百度吧,这里就不介绍了

如果对您有用的话,这里可以打赏哦~