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

自 2.36 到 2.37 版本之间关于 API 的改动,使得客户端无法多开 #50

Closed
IceCodeNew opened this issue Aug 29, 2019 · 3 comments

Comments

@IceCodeNew
Copy link

预期行为

在设备上启动位于不同目录下的两个客户端程序。

实际行为

两个客户端程序中的一个在日志输出中显示报错:

Failed to start v2ray.com/core/app/proxyman/inbound: failed to listen TCP on 10805 > v2ray.com/core/transport/internet: failed to listen on address: 127.0.0.1:10805 > listen tcp 127.0.0.1:10805: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

复现方法

  1. 在任意磁盘位置下创建两个文件夹,分别向其中拷贝最新版的 v2ray 内核程序(目前指 4.20)及最新版本的 v2rayN 客户端(目前指 2.37)
  2. 分别启动两个客户端程序
  3. 在两个客户端程序的界面中分别点击“重启服务按钮”

日志信息,位置在当前目录下的guiLogs

(已经在上面给出,这里遵照模板再贴一次)

Failed to start v2ray.com/core/app/proxyman/inbound: failed to listen TCP on 10805 > v2ray.com/core/transport/internet: failed to listen on address: 127.0.0.1:10805 > listen tcp 127.0.0.1:10805: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

环境信息

(略)

额外信息(可选)

检视版本 2.36 至版本 2.37 之间的提交记录,可以看到导致问题的代码位于 v2rayN/v2rayN/Global.cs 文件内(另外建议 v2rayN/v2rayN/Sample/SampleClientConfig.txt 文件也要做相应的修改)。
定位的方法很简单,访问这个链接(compare/2.36...2.37)然后 Ctrl+F 搜索 10805 就可以了。

@IceCodeNew
Copy link
Author

目测这个 API 监听端口是统计流量用的,我看不用 const 写死端口号嘛,可以通过比如给用户设定的本机监听端口 +1 或者 +10 之类的办法去产生。这样就不至于发生端口冲突的问题了。

@2dust
Copy link
Owner

2dust commented Aug 29, 2019

下一次改进

@2dust
Copy link
Owner

2dust commented Aug 30, 2019

@2dust 2dust closed this as completed Aug 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants