frpc/frps


ox000:

公网IP服务器: 相关端口防火墙关闭

[root@client-142-11-227-141 home]# ls
bbr.sh          docker_ex.sh       down       down.sh  frp_0.35.1_linux_386         frp.tar.gz  init        muma            nginxinit.sh      redis.sh          run.sh
docke_in.sh     docker_gitlab.sh   down1      email    frp_0.35.1_linux_386.tar.gz  http        java        mysql5.5.62.sh  nginx_restart.sh  remote            stop_firewalld.sh
docker-all2.sh  docker_images.tar  down.conf  file     frps.ini                     https       mariadb.sh  mysql.8.0.sh    py                run_firewalld.sh  yang
[root@client-142-11-227-141 home]# tar -zxvf frp_0.35.1_linux_386

进入frp目录

[root@client-142-11-227-141 home]# cd frp_0.35.1_linux_386
[root@client-142-11-227-141 frp_0.35.1_linux_386]# ls
frpc frpc_full.ini frpc.ini frps frps.2022-01-05.log frps_full.ini frps.ini frps.log frps_run.sh LICENSE nohup.out systemd

修改frps.ini 文件配置相关ip/端口/连接.....
[root@client-142-11-227-141 frp_0.35.1_linux_386]# cat frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 9999
vhost_https_port = 443
dashboard_addr = 0.0.0.0
dashboard_port = 7501
dashboard_user = yang
dashboard_pwd = xiong
log_file = ./frps.log
log_level = info
log_max_days = 3
disable_log_color = false
token = 12345678
allow_ports = 2000-3000,3001,3004-4000,5000-50000
max_pool_count = 5
max_ports_per_client = 0
#subdomain_host = xiongyang.top
subdomain_host = xiongyang.icu    # 公网ip/可以为域名
#subdomain_host = 104.238.161.157
tcp_mux = true
[root@client-142-11-227-141 frp_0.35.1_linux_386]#

自己写的启动脚本

[root@client-142-11-227-141 frp_0.35.1_linux_386]# cat frps_run.sh
#! /bin/sh
nohup ./frps -c ./frps.ini &

[root@client-142-11-227-141 frp_0.35.1_linux_386]#

[root@client-142-11-227-141 frp_0.35.1_linux_386]# cat nohup.out
2021/03/09 06:09:19 [I] [root.go:116] frps uses command line arguments for config
2021/03/09 06:09:19 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2021/03/09 06:09:19 [I] [root.go:217] frps started successfully
2021/03/09 06:13:45 [I] [root.go:116] frps uses command line arguments for config
2021/03/09 06:13:45 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2021/03/09 06:13:45 [I] [root.go:217] frps started successfully
2021/03/09 06:39:20 [I] [root.go:116] frps uses command line arguments for config
2021/03/09 06:39:20 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2021/03/09 06:39:20 [I] [root.go:217] frps started successfully
2021/03/09 06:43:06 [I] [root.go:116] frps uses command line arguments for config
2021/03/09 06:43:07 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2021/03/09 06:43:07 [I] [root.go:217] frps started successfully
2021/03/09 15:44:17 [I] [root.go:108] frps uses config file: ./frps.ini
2021/03/09 15:45:06 [I] [root.go:108] frps uses config file: ./frps.ini
2021/03/09 15:49:03 [I] [root.go:108] frps uses config file: ./frps.ini
2021/03/09 16:13:15 [I] [root.go:108] frps uses config file: ./frps.ini
Create server listener error, listen tcp 0.0.0.0:7000: bind: address already in use
2021/03/30 17:57:26 [I] [root.go:108] frps uses config file: ./frps.ini
2021/06/12 11:44:10 [I] [root.go:108] frps uses config file: ./frps.ini
2021/06/12 13:44:28 [I] [root.go:108] frps uses config file: ./frps.ini
2021/06/22 13:58:06 [I] [root.go:108] frps uses config file: ./frps.ini
2021/09/08 00:13:32 [I] [root.go:108] frps uses config file: ./frps.ini
2021/09/16 19:23:31 [I] [root.go:108] frps uses config file: ./frps.ini
2021/10/11 00:19:22 [I] [root.go:108] frps uses config file: ./frps.ini
2021/10/27 00:58:27 [I] [root.go:108] frps uses config file: ./frps.ini
2021/11/15 23:55:18 [I] [root.go:108] frps uses config file: ./frps.ini
2021/12/30 18:09:37 [I] [root.go:108] frps uses config file: ./frps.ini
Create server listener error, listen tcp 0.0.0.0:443: bind: address already in use
2021/12/30 18:15:59 [I] [root.go:108] frps uses config file: ./frps.ini
Create server listener error, listen tcp 0.0.0.0:443: bind: address already in use
2022/01/05 09:33:24 [I] [root.go:108] frps uses config file: ./frps.ini
2022/01/05 23:38:00 [I] [root.go:108] frps uses config file: ./frps.ini
Create server listener error, listen tcp 0.0.0.0:7000: bind: address already in use
2022/01/05 23:38:41 [I] [root.go:108] frps uses config file: ./frps.ini
Create server listener error, listen tcp 0.0.0.0:7000: bind: address already in use
2022/01/05 23:41:59 [I] [root.go:108] frps uses config file: ./frps.ini
Create server listener error, listen tcp 0.0.0.0:7000: bind: address already in use

0x001:

centos7:内网主机: stcp(secret tcp) 

安全地暴露内网服务

这个示例将会创建一个只有自己能访问到的 SSH 服务代理。

对于某些服务来说如果直接暴露于公网上将会存在安全隐患。

使用 stcp(secret tcp) 类型的代理可以避免让任何人都能访问到要穿透的服务,但是访问者也需要运行另外一个 frpc 客户端。

[root@localhost frp_0.35.0_linux_386]# ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  out.out  run.sh  systemd

[root@localhost frp_0.35.0_linux_386]# cat frpc.ini
[common]  #frps 配置
#server_addr = xiongyang.top
server_addr = xiongyang.icu
server_port = 7000
token = 12345678

[secret_ssh]               //名称
type = stcp    //协议
sk = yang    //sk 密码
local_ip = 127.0.0.1   //本地IP  
local_port = 22    //本地端口
#remote_port = 6001
[root@localhost frp_0.35.0_linux_386]#

添加frpc 启动脚本

[root@localhost frp_0.35.0_linux_386]# cat run.sh
cd /home/yang/yang/frp_0.35.0_linux_386/
killall frpc
nohup ./frpc -c frpc.ini > ./out.out 2>&1 &
[root@localhost frp_0.35.0_linux_386]#

//定时任务

crontab -e  //添加定时任务
54 22 * * * /home/yang/yang/frp_0.35.0_linux_386/run.sh
service crond status //查看定时状态
crontab -l //列出某个用户cron服务的详细内容
crontab -l
54 22 * * * /home/yang/yang/frp_0.35.0_linux_386/run.sh

0x002:

windows:访问者

 frpc.ini:内容

[common] #frps 配置
server_addr = xiongyang.top
server_port = 7000
token = 12345678

[secret_ssh_visitor]    #访问者名称
type = stcp      #协议
# stcp 的访问者
role = visitor      #规则
# 要访问的 stcp 代理的名字
server_name = secret_ssh    # 内网主机配置的frpc.ini中的名称(一样才能访问到)
sk = yang        #  内网主机配置的frpc.ini中的密码 (一样才能访问到)
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1   #本地IP
bind_port = 6000    #本地暴露贵frps的端口

#local_ip = 192.168.89.5
#local_port = 3389
#remote_port = 6000
#custom_domains = xiongyang.top

cmd 窗口运行frpc.exe 

frp_0.35.0_windows_amd64\frp_0.35.0_windows_amd64_dg_>frpc.exe
2022/01/06 02:06:32 [I] [service.go:290] [973c53e867d166c7] login to server success, get run id [973c53e867d166c7], server udp port [7001]
2022/01/06 02:06:32 [I] [visitor_manager.go:86] [973c53e867d166c7] start visitor success
2022/01/06 02:06:32 [I] [visitor_manager.go:130] [973c53e867d166c7] visitor added: [secret_ssh_visitor_dg]

0x002:

访问者连接内网主机:

cmd

C:\Users\xiong>ssh -oPort=6000 root@127.0.0.1
root@127.0.0.1's password:
Last login: Thu Jan  6 02:05:37 2022 from localhost
Last login: Thu Jan  6 02:05:37 2022 from localhost
[root@djsaas ~]# ls
anaconda-ks.cfg
[root@djsaas ~]# ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a9:96:98 brd ff:ff:ff:ff:ff:ff
    inet 172.20.16.204/24 brd 172.20.16.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::adca:6e42:1e35:89d0/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: docker0:  mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:3e:dc:2e:05 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:3eff:fedc:2e05/64 scope link
       valid_lft forever preferred_lft forever

0x003:

至此 内网连接成功:流量流向  win10:ip:6000--->frps --->centos7:ip:22  ,frps 会转发6000到frps的流量到连接到frps与之相连的22流量路径

 

ox004:

额外:定时crontab 

crontab -e  //添加定时任务

54 22 * * * /home/yang/yang/frp_0.35.0_linux_386/run.sh

service crond status //查看定时状态
crontab -l //列出某个用户cron服务的详细内容

参考frp: https://gofrp.org/docs/examples/xtcp/

 

FRP