一.环境配置
1.内网Ubuntu机器一台 系统版本号:Ubuntu 18.04.6 LTS。
2.具有独立公网ip的服务器一台
3.ftp 版本号vsftpd: version 3.0.3
4.frp 版本 frp_0.38.0_linux_amd64
流程是这样的,内网机器可以访问外网但是没有公网ip,于是通过frp穿透到拥有公网ip的机器上,提供给外网用户访问。
ftp和frp安装步骤以及相关配置,这里不再过多赘述。
二.问题点
过程中出现了配置好了,我这边电脑可以通过公网ip进行访问,但是有些人不行,后来经过排查,发现我的电脑之所以可以是因为我的网络和内网机器是在一个网络内,我切换网络和内网机器不在一个网络内,就无法访问了。
三.解决
关键点配置如下
1.调整frpc的配置文件,关键配置如下(假如内网ftp服务端口是21,外网端口是11001,50015-50020是ftp服务登录成功后,分配的连接端口,这个也需要开放下)
[range:ftp_server]
type=tcp
local_ip=192.168.1.155
local_port=21,50015-50020
remote_port=11001,50015-50020
我原先的配置是标少了range:,所以才会导致端口映射一直没有生效
2.在vsftpd.conf配置文件中,需要加以下配置
pasv_enable=YES
listen=YES
listen_ipv6=NO
pasv_min_port=50015
pasv_max_port=50020
pasv_address=xxx.xxx.xxx.xxx //这个配置是公网服务器的公网ip
配置修改后再重启,不在同一个网段内也可以访问了。