Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

对外提供nginx服务的服务器主机,使用singbox后,对外服务会无法连接 #2088

Closed
4 of 5 tasks
wiselike opened this issue Sep 5, 2024 · 3 comments
Closed
4 of 5 tasks
Labels

Comments

@wiselike
Copy link

wiselike commented Sep 5, 2024

操作系统

Linux

系统版本

Ubuntu22.04

安装类型

sing-box 原始命令行程序

如果您使用图形客户端程序,请提供该程序版本。

No response

版本

1.9.4

描述

服务器主机内的网络结构:

  1. 服务器主机只有单物理网卡eth0;
  2. nginx是容器服务,运行在docker内,使用的是docker的bridge网卡,docker配置端口映射443,对外提供服务。
  3. singbox,直接在主机上命令行方式运行,并开启tun网卡;

故障现象与分析:

  1. 启动singbox后,外网访问nginx服务,就无法连接。使用tcpdump抓包eth0网卡,有入包,但没有出包;关闭停用singbox后,nginx对外服务恢复。
  2. 启动singbox后,外网访问nginx服务,就无法连接。使用tcpdump抓包tun网卡,无入包也无出包。
  3. 启动singbox后,进入nginx容器,使用ping、curl均能访问国内、国外外网。

重现方式

详见描述

日志

No response

支持我们

完整性要求

  • 我保证阅读了文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我保证提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
  • 我保证提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器、TUN、图形界面客户端或者其他闭源软件。
  • 我保证提供了完整的配置文件与日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
@hengwu0
Copy link

hengwu0 commented Sep 5, 2024

再次排查了一下,确定了是只有eth0有入包,然后包是在tun网卡上被丢掉的,根本没进到容器服务里。

有一个解决方案,现在临时规避了,tun添加配置:"exclude_interface": "nginx"。让sing-box设置排除nginx的容器所在的网卡。这样sing-box会自动在ip rule里添加一条路由规则,到nginx网卡的包不走tun。
这样只有nginx网卡不能访问外网,用其他的虚拟网卡则不受影响可以走tun,从而访问外网。

@hengwu0
Copy link

hengwu0 commented Sep 5, 2024

这个故障应该是ip_is_private不起作用引起的,本地ip比如172.16.0.0/16也会被再次路由转发。

Copy link

github-actions bot commented Nov 5, 2024

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days

@github-actions github-actions bot added the Stale label Nov 5, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Nov 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants