一、frp
1.概述:
frp是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持tcp、udp、http、https等协议,frp官网:https://github.com/fatedier/frp
2.frp工作原理:
服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口的转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户链接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从⽽实现内⽹对外暴露服务的能⼒。
3.安装配置
tdr 内⽹主机 不可以被⽹络访问
tds 外⽹主机 可以被外⽹通过ip或者域名访问
使⽤tds代理tdr主机,通过访问tds主机管理tdr主机
访问tds主机的特定端⼝,管理tdr主机的22端⼝
现在我们说tds为服务端,提供代理服务
tdr主机是客户端,被代理了
[root@tdr ~]# wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz //已经给好的tar包
[root@tdr ~]# tar -zxvf frp_0.33.0_linux_amd64.tar.gz //解压
[root@tdr ~]# cd frp/
[root@tdr frp]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
[root@tdr frp]# cd
打开另一台主机(tds),创建/frp
[root@tds ~]# mkdir /frp
回到本机(tdr)
[root@tdr ~]# scp -r frp/* root@192.168.1.125:/frp
去另一台主机(tds)做服务端,提供代理服务
[root@tds ~]# vim /frp/frps.ini //注意文件名称
[common] //服务名称
bind_port = 7000 //服务端口
dashboard_user=aaa //控制台面板账号
dashboard_pwd=aaa //控制台密码
dashboard_port=7500 //控制台端口
token=xxxxxxxx //代理标识
这会防火墙必须打开
[root@tds frp]# firewall-cmd --zone=public --add-port=7000/tcp --permanent //打开控制台⾯板端⼝
success
[root@tds frp]# firewall-cmd --zone=public --add-port=7500/tcp --permanent //打开frp服务端⼝
success
[root@tds frp]# firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent //打开⼀组客户端⼝
success
[root@tds frp]# firewall-cmd --reload //加载防火墙更新
success
[root@tds frp]# ./frps -c frps.ini //注意文件名,这是server机
浏览器访问192.168.1.125:7500
知道错了没:
回到本机访问(tdr)
[root@tdr frp]# vim frpc.ini
[common] //服务器名称
server_addr = 192.168.1.125 //服务器ip
server_port = 7000 //服务器端口
[fff] // 被代理的主机名称,不允许和其他重复
type = tcp //代理服务类型
local_ip = 127.0.0.1 // #本地ip
local_port = 22 //本机被代理的端口
remote_port = 6100 //选择代理后的端⼝
如果希望后台运⾏,添加nohub和&
[root@tdr frp]# ./frpc -c frpc.ini //注意文件名,这是client机
二、ftp
1.ftp服务概述:
FTP(File Transfer Protocol)是⼀种应⽤⾮常⼴泛并且古⽼的⼀个互联⽹⽂件传输协议。
主要⽤于互联⽹中==⽂件的双向传输==(上传/下载)、⽂件共享
跨平台 Linux、Windows
FTP是==C/S==架构,拥有⼀个客户端和服务端,使⽤==TCP协议==作为底层传输协议,
提供可靠的数据传输
FTP的默认端⼝ ==21号==(命令端⼝) ==20号==(数据端⼝,主动模式下) 默认被
动模式下
FTP程序(软件)==vsftpd==
2、FTP服务的客户端⼯具
知道错了没:
Linux:ftp、lftp(客户端程序)
Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
lftp和ftp⼯具区别:
lftp:默认是以==匿名⽤户==访问
ftp:默认是以==⽤户名/密码==⽅式访问
lftp可以批量并且下载⽬录
3、FTP的两种运⾏模式
在FTP服务中,其⼀共拥有两种模式(主动模式 + 被动模式)
4、搭建FTP服务
[root@tdr ~]# yum -y install vsftpd
[root@tdr ~]# systemctl restart vsftpd
[root@tdr ~]# systemctl enabled vsftpd
[root@tdr ~]# firewall-cmd --set-default-zone=trusted //修改默认区域
[root@tdr ~]# firewall-cmd --get-default-zone //查看默认区域
5.FTP的配置⽂件详解
[root@tdr ~]# rpm -ql vsftpd
/usr/lib/systemd/system/vsftpd.service //启动脚本
/etc/vsftpd // 配置⽂件的⽬录
/etc/vsftpd/ftpusers // ⽤户列表⽂件,⿊名单
/etc/vsftpd/user_list //⽤户列表⽂件,可⿊可⽩(默认是⿊名单)
/etc/vsftpd/vsftpd.conf //配置⽂件(主配置⽂件)
/usr/sbin/vsftpd //程序本身(⼆进制的命令)
/var/ftp //匿名⽤户的默认数据根⽬录
/var/ftp/pub //匿名⽤户的扩展数据⽬录
vsftpd配置⽂件详解:
[root@tdr ~]# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES // ⽀持匿名⽤户访问
local_enable=YES //⽀持⾮匿名⽤户,普通账号登录,默认进⼊到⾃⼰家⽬录
write_enable=YES //写总开关
local_umask=022 //反掩码 file:644 rw- r-- r-- dir:755
dirmessage_enable=YES //启⽤消息功能
xferlog_enable=YES //开启或启⽤xferlog⽇志
connect_from_port_20=YES //⽀持主动模式(默认被动模式)
xferlog_std_format=YES //xferlog⽇志格式
listen=YES //ftp服务独⽴模式下的监听
pam_service_name=vsftpd //指定认证⽂件
userlist_enable=YES //启⽤⽤户列表
tcp_wrappers=YES //⽀持tcp_wrappers功能(FTP限速操作)
6.操作
去客户机(tds)
[root@tds ~]# yum -y install lftp
[root@tds ~]# yum -y install ftp
[root@tds ~]# lftp 192.168.1.100
lftp 192.168.1.100:~> ls
drwxr-xr-x 2 0 0 6 Jun 09 2021 pub
[root@tds ~]# ftp 192.168.1.100
Connected to 192.168.1.100 (192.168.1.100).
220 (vsFTPd 3.0.2)
Name (192.168.1.100:root): ftp
331 Please specify the password.
Password: //不用输密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,100,63,43).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 6 Jun 09 2021 pub
226 Directory send OK.
回到server(tdr)机
[root@tdr ~]# useradd kehu //创建客服账号
[root@tdr ~]# echo 1|passwd --stdin kehu
[root@tdr ~]# vim /etc/vsftpd/vsftpd.conf //修改配置文件
12 anonymous_enable=NO //YES改为NO,不用许匿名用户访问
[root@tdr ~]# systemctl restart vsftpd //重启服务
去客户机(tds)
[root@tds ~]# ftp 192.168.1.100
Connected to 192.168.1.100 (192.168.1.100).
220 (vsFTPd 3.0.2)
Name (192.168.1.100:root): kehu
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
回到server(tdr)
[root@tdr ~]# vim /etc/vsftpd/vsftpd.conf
local_root=/data/kehu //有就改,没有就写,指定账号访问的目录
[root@tdr ~]# mkdir /data/kehu -p
[root@tdr ~]# tree /data
/data
└── kehu
[root@tdr ~]# vim /etc/vsftpd/vsftpd.conf
101 chroot_local_user=YES // 去掉注释,禁锢kefu⽤户只能在/data/kefu⽬录下
[root@tdr ~]# systemctl restart vsftpd
[root@tdr ~]# cd /data/kehu/
[root@tdr kehu]# dd if=/dev/zero of=./syg.txt bs=3M count=1
记录了1+0 的读入
记录了1+0 的写出
3145728字节(3.1 MB)已复制,0.0103883 秒,303 MB/秒
去client(tds)
ftp> ls
227 Entering Passive Mode (192,168,1,100,129,182).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 3145728 Jul 19 07:59 syg.txt
226 Directory send OK.