全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 1203|回复: 9
打印 上一主题 下一主题

【已解决】【付费求助】frp转发JumpServer流量

[复制链接]
跳转到指定楼层
1#
发表于 2023-9-6 15:21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 como 于 2023-9-12 15:03 编辑

问题描述:

当使用frp转发JumpServer的https流量时,JumpServer的【网页面板登陆日志】及【其他可能涉及日志】的地方均记录内网IP,而不是真实的访客IP。
我希望在frp转发流量时,上述位置记录的是访客真实的IP,而不是内网ip。

---

求助信息:

由于长时间调试未果,我希望有大佬能远程连接我的ssh协助解决。我愿意为此付费。联系方式:tg@GlobalMarkMonitor。

---

版本信息:

- **JumpServer:** V3.6.2
- **Frp:** V0.51.3

---

我的尝试和研究:

### 1. 参考资料:

- [教程1](https://www.psay.cn/toss/183.html)
- [教程2](https://bloodzer0.github.io/ossa/log_analysis/nginx_realip/)
- [JumpServer官方文档](https://docs.jumpserver.org/zh/v3/installation/proxy/#1-nginx-ssl) (阅读部分:关于自定义Nginx配置文件的内容)

### 2. 测试过程:

- 所有的尝试都在没有SSL的http下进行。
- 当`frpc.ini`设置为`type=tcp`时,可以正常转发流量。
- 但当设置为`type=http`时,网站显示“example.com refused to connect”。
- 如果在`type=tcp`下增加`proxy_protocol_version = v2`也会出现上述提示。

### 3. 猜测:

可能是NGINX中间件配置出了问题,或者是`frpc.ini`的配置有误。


生产环境中没有公网ip。计划部署两个frpc,一个连境内的frps,一个连境外的方便境外流畅控制。所以通过frp途径访问是必不可少的。

2#
发表于 2023-9-6 15:38:15 | 只看该作者
frp 貌似没办法透传真实地址, 考虑用iptable或者nstable做端口转发吧。
3#
 楼主| 发表于 2023-9-6 15:40:00 | 只看该作者
贱人就是矫情 发表于 2023-9-6 15:38
frp 貌似没办法透传真实地址, 考虑用iptable或者nstable做端口转发吧。

生产环境中没有公网ip。计划部署两个frpc,一个连境内的frps,一个连境外的方便境外流畅控制。所以通过frp途径访问是必不可少的。
4#
发表于 2023-9-6 15:44:03 | 只看该作者
尝试下frp服务器搭建个nginx, 入口流量先到nginx,然后由nginx代理(传递真实ip)到frp JumpServer端口,frp用tcp模式。
5#
 楼主| 发表于 2023-9-6 16:25:44 | 只看该作者
落叶随风 发表于 2023-9-6 15:44
尝试下frp服务器搭建个nginx, 入口流量先到nginx,然后由nginx代理(传递真实ip)到frp JumpServer端口,frp ...

这样操作会让速度变慢嘛?比如延迟增加?
6#
发表于 2023-9-6 17:04:05 | 只看该作者
como 发表于 2023-9-6 16:25
这样操作会让速度变慢嘛?比如延迟增加?

还好吧,也慢不到哪里去。
同时frp的web模式默认已经传递了真实IP,在请求头的
  1. X-Forwarded-For
复制代码

https://gofrp.org/docs/features/common/realip/。
当然 JumpServer 有没有取这个值就 木鸡 啦~
7#
发表于 2023-9-6 17:10:41 来自手机 | 只看该作者
目测需要修改jumpserver
8#
发表于 2023-9-6 17:13:00 | 只看该作者
frp支持通过proxy_protocol_version 来传递真实ip,但jumpserver应该不支持这协议
9#
发表于 2023-9-6 23:13:15 来自手机 | 只看该作者
如果是内部使用不需要对公网服务提个思路,可以把JumpServer放在由tailscale构建的内网运行,ts自身可以提供ssl证书,内网里也是https加密的,然后不同使用者分配ts的内网IP,这样JumpServer记录的就是ts的内网IP,IP谁用的ts上做个备注即可,我看你的意思是因为没有公网IP才用frp说明有异地连接需求,这样ts顺带都解决了,整个构建在内网也进一步保证了安全
10#
发表于 2023-9-7 11:03:32 | 只看该作者
pathletboy 发表于 2023-9-6 17:10
目测需要修改jumpserver

看了下,改FRP会简单一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-14 21:56 , Processed in 0.101637 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表