Setup Frp for Internal Network Penetration
内网穿透
内网穿透,即NAT穿透
- 网络地址转换(Network Address Translation,NAT)机制的问题在于,NAT设备自动屏蔽了非内网主机主动发起的连接,
- 也就是说,从外网发往内网的数据包将被NAT设备丢弃,这使得位于不同NAT设备之后的主机之间无法直接交换信息。
- 这一方面保护了内网主机免于来自外部网络的攻击,另一方面也为P2P通信带来了一定困难。
目的
在外网环境中利用内网的主机资源。
方法
内网穿透有多种方法,再此我选择了 frp 来实现。
frp 下载安装
下载可在 github,frp项目 链接https://github.com/fatedier/frp/releases 找适合自己平台的版本,可以用 wget 下载。
- arm64 平台下载
wget https://github.com/fatedier/frp/releases/download/v0.28.0/frp_0.28.0_linux_arm64.tar.gz
- 解压
tar -zxvf frp_0.28.0_linux_arm64.tar.gz
server 服务器端配置
config
$ cat frps.ini
[common]
bind_port = 7000 # 设置与客户端绑定的进行通信的端口
启动服务
./frps -c ./frps.ini # 前台启动
nohup ./frps -c ./frps.ini & # 后台启动
client 客户端配置
config
$ cat frpc.ini
[common]
server_addr = xxx.xxx.xx.xxx #公网服务器ip
server_port = 7000 #与服务端bind_port一致
#公网通过ssh访问内部服务器
[ssh]
type = tcp #连接协议
local_ip = 192.168.3.48 #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port = 6000 #自定义的访问内部ssh端口号
启动服务
./frpc -c ./frpc.ini # 前台启动
nohup ./frpc -c ./frpc.ini & # 后台启动
connection 连接
ssh -p 6000 username@remote_public_ip