frp : 是一个开源、简洁易用、高性能的内网穿透和反向代理软件
官网:https://github.com/fatedier/frp
工作原理:
服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口;
外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
```
[root@localhost ~]# tar -zxvf frp.tar.gz //导入frp包,解压
frp_0.33.0_linux_amd64/
frp_0.33.0_linux_amd64/frps_full.ini
frp_0.33.0_linux_amd64/frps.ini
frp_0.33.0_linux_amd64/frpc
frp_0.33.0_linux_amd64/frpc_full.ini
frp_0.33.0_linux_amd64/frps
frp_0.33.0_linux_amd64/LICENSE
frp_0.33.0_linux_amd64/frpc.ini
frp_0.33.0_linux_amd64/systemd/
frp_0.33.0_linux_amd64/systemd/frpc@.service
frp_0.33.0_linux_amd64/systemd/frpc.service
frp_0.33.0_linux_amd64/systemd/frps.service
frp_0.33.0_linux_amd64/systemd/frps@.service
[root@localhost ~]# cp -r frp_0.33.0_linux_amd64/ frp/ //改名
[root@localhost ~]# ls
anaconda-ks.cfg b2.txt folder frp_0.33.0_linux_amd64 inotify.sh
b1.txt b3.txt frp frp.tar.gz
[root@localhost ~]# tree
.
├── anaconda-ks.cfg
├── b1.txt
├── b2.txt
├── b3.txt
├── folder
│ ├── f1
│ │ ├── file1
│ │ ├── file2
│ │ ├── file3
│ │ ├── file4
│ │ └── file5
│ ├── f2
│ │ ├── file1
│ │ ├── file2
│ │ ├── file3
│ │ ├── file4
│ │ └── file5
│ └── f3
├── frp
│ ├── frpc
│ ├── frpc_full.ini
│ ├── frpc.ini
│ ├── frps
│ ├── frps_full.ini
│ ├── frps.ini
│ ├── LICENSE
│ └── systemd
│ ├── frpc.service
│ ├── frpc@.service
│ ├── frps.service
│ └── frps@.service
├── frp.tar.gz
└── inotify.sh
6 directories, 27 files
[root@localhost ~]#
```
cd frp 进入frp目录
```
vim frpc.ini
[common]
server_addr = 123.249.27.10 //云服务器ip
server_port = 7000
token=knee@588588 //标识符
[xucongcong] //名称唯一即可被代理
type = tcp
local_ip = 192.168.1.22
local_port = 22
remote_port = 6079 //必须唯一
[root@localhost frp]# ./frpc -c frpc.ini //启动服务
```
访问123.249.27.10:7500 进入网站登入账号密码
![屏幕截图 2024-07-19 103255](C:\Users\31836\Pictures\Screenshots\屏幕截图 2024-07-19 103255.png)
a 内网主机 不可以被网络访问
b 外网主机 可以北外网通过ip或者域名访问
使用b代理a主机,通过访问b主机管理a主机
访问b主机的特殊端口a
服务器
1.导入包,并解压
2.改名
3.编辑服务器端ini配置文件
```shell
[root@localhost ~]# vi frp/frps.ini
[common] //服务器名称
bind_port = 7000 //服务端口
dashboard_user=xucc //控制面板账号
dashboard_pwd=9420 //控制台密码
dashboard_port=7500 //控制台端口
token= //代理标识
```
开启端口 7000frp 7500 面板 6000-6100 客户端的代理端口
//打开控制面板端口
```
[root@localhost ~]# firewall-cmd --zone=public --add-port=7500/tcp --permanent
success
```
//打开frp服务端口
```
[root@localhost ~]# systemctl restart firewalld
[root@localhost ~]# firewall-cmd --zone=public --add-port=7000/tcp --permanent
success
```
//打开一组客户端口
```
[root@localhost ~]# firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent
success
```
//加载防火墙更新
启动服务frp
```
[root@localhost frp]# ./frps -c frps.ini
2024/07/19 11:35:19 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
2024/07/19 11:35:19 [I] [service.go:277] Dashboard listen on 0.0.0.0:7500
2024/07/19 11:35:19 [I] [root.go:209] start frps success
2024/07/19 11:35:51 [I] [dashboard_api.go:65] Http request: [/api/serverinfo]
2024/07/19 11:35:51 [I] [dashboard_api.go:58] Http response [/api/serverinfo]: code [200]
```
访问192.168.1.23:7500控制台
![屏幕截图 2024-07-19 113719](C:\Users\31836\Pictures\Screenshots\屏幕截图 2024-07-19 113719.png)
frp 反向代理服务器
github上的开源软件
底层 vpn 私有的局域网
使用加速器在github,uu加速器,steam++免费开源
客户端
frpc frpc.ini frpc.full.ini
服务器
frps frps.ini frps.full.ini
分别部署到服务器和客户端
配置服务器的frps.ini
开启端口
启动服务 ~/frp/frps -c frps.ini
Ftp服务 (file transfer protocol)
是一种应用非常广泛并且古老的一个互联网文件传输协议
■主要用于互联网中==文件的双向传输==(上传/下载)、文件共享
■跨平台Linux,Windows
fFTP是==C/S==架构,拥有一个客户端和服务端,使用==TCP协议==作为底层传输协议,提供可靠的数据传输
■ FTP的默认端口==21号==(命令端口)==20号==(数据端口,主动模式下)默认被动模式下
■ FTP程序(软件) ==vsftpd==
FTP软件名称=>vsftpd=>vs (very secure ftp daemon)
搭建FTP服务(重要)
第⼀步:关闭防⽕墙与SELinux
第⼆步:配置YUM源
第三步:安装vsftpd软件(FTP => vsftpd)
第四步:启动ftp服务并添加到开机启动项中
1. 关闭防⽕墙和selinux
2. 配置yum源(mount /dev/sr0 /mnt)
3. 软件三部曲
4. 了解配置⽂件
```
# 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 匿名⽤户的扩展数据⽬录
# 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限速操作)
```
5. 根据需求修改配置⽂件来完成服务的搭建
6. 启动服务,开机⾃启动
systemctl restart vsftpd
7. 测试验证
ftp ip