mirror of
				https://github.com/2dust/v2rayN.git
				synced 2025-11-03 22:12:52 +00:00 
			
		
		
		
	Return api port=socks port +11
This commit is contained in:
		
							parent
							
								
									66e40edd0e
								
							
						
					
					
						commit
						4b2b45979b
					
				
					 3 changed files with 15 additions and 52 deletions
				
			
		| 
						 | 
					@ -579,11 +579,10 @@ namespace v2rayN
 | 
				
			||||||
            return inUse;
 | 
					            return inUse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public static int GetFreePort()
 | 
					        public static int GetFreePort(int defaultPort = 9090)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                int defaultPort = 9090;
 | 
					 | 
				
			||||||
                if (!Utile.PortInUse(defaultPort))
 | 
					                if (!Utile.PortInUse(defaultPort))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    return defaultPort;
 | 
					                    return defaultPort;
 | 
				
			||||||
| 
						 | 
					@ -598,7 +597,7 @@ namespace v2rayN
 | 
				
			||||||
            catch
 | 
					            catch
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            return 69090;
 | 
					            return 59090;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #endregion 测速
 | 
					        #endregion 测速
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ namespace v2rayN.Handler
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (_statePort is null)
 | 
					                if (_statePort is null)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    _statePort = Utile.GetFreePort();
 | 
					                    _statePort = Utile.GetFreePort(GetLocalPort(Global.InboundAPITagName));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                return _statePort.Value;
 | 
					                return _statePort.Value;
 | 
				
			||||||
| 
						 | 
					@ -52,32 +52,18 @@ namespace v2rayN.Handler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public int GetLocalPort(string protocol)
 | 
					        public int GetLocalPort(string protocol)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            int localPort = _config.inbound.FirstOrDefault(t => t.protocol == Global.InboundSocks).localPort;
 | 
					            var localPort = _config.inbound.FirstOrDefault(t => t.protocol == Global.InboundSocks)?.localPort ?? 10808;
 | 
				
			||||||
            if (protocol == Global.InboundSocks)
 | 
					            return protocol.ToLower() switch
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return localPort;
 | 
					                Global.InboundSocks => localPort,
 | 
				
			||||||
            }
 | 
					                Global.InboundHttp => localPort + 1,
 | 
				
			||||||
            else if (protocol == Global.InboundHttp)
 | 
					                Global.InboundSocks2 => localPort + 2,
 | 
				
			||||||
            {
 | 
					                Global.InboundHttp2 => localPort + 3,
 | 
				
			||||||
                return localPort + 1;
 | 
					                "pac" => localPort + 4,
 | 
				
			||||||
            }
 | 
					                Global.InboundAPITagName => localPort + 11,
 | 
				
			||||||
            else if (protocol == Global.InboundSocks2)
 | 
					                "speedtest" => localPort + 21,
 | 
				
			||||||
            {
 | 
					                _ => localPort,
 | 
				
			||||||
                return localPort + 2;
 | 
					            };
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (protocol == Global.InboundHttp2)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return localPort + 3;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (protocol == ESysProxyType.Pac.ToString())
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return localPort + 4;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else if (protocol == "speedtest")
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return localPort + 103;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            return localPort;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void AddProcess(IntPtr processHandle)
 | 
					        public void AddProcess(IntPtr processHandle)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,28 +132,6 @@ namespace v2rayN.Handler
 | 
				
			||||||
                _serverStatItem.todayDown = 0;
 | 
					                _serverStatItem.todayDown = 0;
 | 
				
			||||||
                _serverStatItem.dateNow = ticks;
 | 
					                _serverStatItem.dateNow = ticks;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }        
 | 
				
			||||||
 | 
					 | 
				
			||||||
        private int GetFreePort()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                int defaultPort = 9090;
 | 
					 | 
				
			||||||
                if (!Utile.PortInUse(defaultPort))
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    return defaultPort;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                TcpListener l = new(IPAddress.Loopback, 0);
 | 
					 | 
				
			||||||
                l.Start();
 | 
					 | 
				
			||||||
                int port = ((IPEndPoint)l.LocalEndpoint).Port;
 | 
					 | 
				
			||||||
                l.Stop();
 | 
					 | 
				
			||||||
                return port;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            return 69090;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in a new issue