I am experimenting with the web.address feature as a means of isolating traffic on a multi-use server and have configured it to use a 2nd IP address assigned to the same NIC as the primary IP address as so:
<entry key='web.address'>172.16.0.10</entry>
<entry key='web.port'>8080</entry>
PS C:\Program Files\Traccar\conf> ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : redacted
Primary Dns Suffix . . . . . . . : redacted.org
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : redacted.org
local
Ethernet adapter NIC2:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Broadcom NetXtreme Gigabit Ethernet
Physical Address. . . . . . . . . : 20-47-47-7A-41-7A
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Ethernet adapter NIC1:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Broadcom NetXtreme Gigabit Ethernet #2
Physical Address. . . . . . . . . : 20-47-47-7A-41-78
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::9b2b:3711:352f:beb%9(Preferred)
IPv4 Address. . . . . . . . . . . : 172.16.0.5(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
IPv4 Address. . . . . . . . . . . : 172.16.0.10(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 172.16.0.1
DNS Servers . . . . . . . . . . . : 172.16.0.5
8.8.8.8
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Ethernet 2:
Connection-specific DNS Suffix . : local
Description . . . . . . . . . . . : Remote NDIS Compatible Device
Physical Address. . . . . . . . . : 20-47-47-7A-41-7D
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::641e:eea8:b18d:d725%8(Preferred)
IPv4 Address. . . . . . . . . . . : 169.254.0.2(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Wednesday, February 14, 2024 1:10:43 AM
Lease Expires . . . . . . . . . . : Saturday, February 24, 2024 1:10:45 AM
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 169.254.0.1
DHCPv6 IAID . . . . . . . . . . . : 253773639
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-17-5F-F5-20-47-47-7A-41-7A
DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBIOS over Tcpip. . . . . . . . : Enabled
However, when the traccar service is restarted, the UI is listening on some other IP in the Automatic Private IP Addressing range which coincidentally corresponds to the Remote NDIS Compatible Device psuedo NIC (I think the server's OOB management card):
PS C:\Program Files\Traccar\conf> netstat -ano | select-string ':8080'
TCP 169.254.41.152:8080 0.0.0.0:0 LISTENING 824
Logs indicate no issues:
2024-02-17 14:49:02 INFO: Operating system name: Windows Server 2022 version: 10.0 architecture: amd64
2024-02-17 14:49:02 INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: Eclipse Adoptium version: 17.0.6+10
2024-02-17 14:49:02 INFO: Memory limit heap: 2034mb non-heap: 0mb
2024-02-17 14:49:02 INFO: Character encoding: windows-1252
2024-02-17 14:49:02 INFO: Version: 5.12
2024-02-17 14:49:02 INFO: Starting server...
2024-02-17 14:49:03 INFO: HikariPool-1 - Starting...
2024-02-17 14:49:03 INFO: HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@31708ce4
2024-02-17 14:49:03 INFO: HikariPool-1 - Start completed.
2024-02-17 14:49:04 INFO: Clearing database change log checksums
2024-02-17 14:49:04 INFO: Successfully acquired change log lock
2024-02-17 14:49:04 INFO: Successfully released change log lock
2024-02-17 14:49:09 INFO: Reading from traccar.DATABASECHANGELOG
2024-02-17 14:49:10 INFO: Reading from traccar.DATABASECHANGELOG
2024-02-17 14:49:10 INFO: Reading from traccar.DATABASECHANGELOG
2024-02-17 14:49:10 INFO: UPDATE SUMMARY
2024-02-17 14:49:10 INFO: Run: 0
2024-02-17 14:49:10 INFO: Previously run: 46
2024-02-17 14:49:10 INFO: Filtered out: 0
2024-02-17 14:49:10 INFO: -------------------------------
2024-02-17 14:49:10 INFO: Total change sets: 46
2024-02-17 14:49:10 INFO: Update summary generated
2024-02-17 14:49:10 INFO: Successfully released change log lock
2024-02-17 14:49:10 INFO: Command execution complete
2024-02-17 14:49:13 INFO: jetty-11.0.19; built: 2023-12-15T20:54:39.802Z; git: f781e475c8fa9e9c8ce18b1eaa03110d510f905f; jvm 17.0.6+10
2024-02-17 14:49:13 INFO: Started o.t.w.@7f38ded0{/,null,AVAILABLE}
2024-02-17 14:49:13 INFO: Session workerName=node0
2024-02-17 14:49:14 WARN: JAXBContext implementation could not be found. WADL feature is disabled.
2024-02-17 14:49:14 INFO: [Te26fd041] connected
2024-02-17 14:49:15 INFO: Started o.e.j.s.ServletContextHandler@74854fb9{/,null,AVAILABLE}
2024-02-17 14:49:15 INFO: Started ServerConnector@5cc94d99{HTTP/1.1, (http/1.1)}{<redacted>:8080}
2024-02-17 14:49:15 INFO: Started Server@70cdf268{STARTING}[11.0.19,sto=0] @16266ms
Debug log references the odd IP:
024-02-17 15:04:35 DEBUG: QueuedThreadPool[qtp1742743239]@67e026c7{STOPPED,8<=0<=200,i=0,r=-1,t=-309261056ms,q=0}[NO_TRY] added {org.eclipse.jetty.util.thread.ThreadPoolBudget@34545910,POJO}
2024-02-17 15:04:35 DEBUG: Server@e669a86{STOPPED}[11.0.19,sto=0] added {QueuedThreadPool[qtp1742743239]@67e026c7{STOPPED,8<=0<=200,i=0,r=-1,t=-309261065ms,q=0}[NO_TRY],AUTO}
2024-02-17 15:04:35 DEBUG: Server@e669a86{STOPPED}[11.0.19,sto=0] added {AttributeContainerMap@7b5ddd2e{size=0},AUTO}
2024-02-17 15:04:35 DEBUG: HttpConnectionFactory@18253c1c[HTTP/1.1] added {HttpConfiguration@45b58138{32768/8192,8192/8192,https://:0,[]},POJO}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{null, ()}{0.0.0.0:0} added {QueuedThreadPool[qtp1742743239]@67e026c7{STOPPED,8<=0<=200,i=0,r=-1,t=-309261102ms,q=0}[NO_TRY],AUTO}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{null, ()}{0.0.0.0:0} added {ScheduledExecutorScheduler@2b351fec{STOPPED},AUTO}
2024-02-17 15:04:35 DEBUG: Server@e669a86{STOPPED}[11.0.19,sto=0] added {LogarithmicArrayByteBufferPool@730c9026{minBufferCapacity=0, maxBufferCapacity=65536, maxQueueLength=-1, factor=4096},POJO}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{null, ()}{0.0.0.0:0} added {LogarithmicArrayByteBufferPool@730c9026{minBufferCapacity=0, maxBufferCapacity=65536, maxQueueLength=-1, factor=4096},UNMANAGED}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{null, ()}{0.0.0.0:0} added {org.eclipse.jetty.io.LogarithmicArrayByteBufferPool$LogarithmicRetainablePool@18115131{min=0,max=65536,buckets=17,heap=0/-1,direct=0/-1},POJO}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{null, ()}{0.0.0.0:0} added {org.eclipse.jetty.server.AbstractConnector$1@40823413,POJO}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{null, (http/1.1)}{0.0.0.0:0} added {HttpConnectionFactory@18253c1c[HTTP/1.1],AUTO}
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{HTTP/1.1, (http/1.1)}{0.0.0.0:0} added HttpConnectionFactory@18253c1c[HTTP/1.1]
2024-02-17 15:04:35 DEBUG: ServerConnector@3b45242b{HTTP/1.1, (http/1.1)}{0.0.0.0:0} added {SelectorManager@ServerConnector@3b45242b{HTTP/1.1, (http/1.1)}{0.0.0.0:0},MANAGED}
2024-02-17 15:04:35 DEBUG: Server@e669a86{STOPPED}[11.0.19,sto=0] added {ServerConnector@3b45242b{HTTP/1.1, (http/1.1)}{<redacted>:8080},AUTO}
2024-02-17 15:04:35 DEBUG: o.e.j.s.ServletContextHandler@2f767160{/,null,STOPPED} added {org.eclipse.jetty.server.session.SessionHandler200146501==dftMaxIdleSec=-1,MANAGED}
2024-02-17 15:04:35 DEBUG: org.eclipse.jetty.server.session.SessionHandler200146501==dftMaxIdleSec=-1 added {ServletHandler@1b5141d{STOPPED},MANAGED}
2024-02-17 15:04:35 DEBUG: o.e.j.s.ServletContextHandler@2f767160{/,null,STOPPED} added {ServletContainerInitializerStarter@65290c2c{STOPPED},MANAGED}
2024-02-17 15:04:35 DEBUG: ServletContainerInitializerStarter@65290c2c{STOPPED} added {ContainerInitializer{org.eclipse.jetty.websocket.server.config.JettyWebSocketServletContainerInitializer,interested=[],applicable=[],annotated=[]},MANAGED}
2024-02-17 15:04:35 DEBUG: ServletHandler@1b5141d{STOPPED} added {com.google.inject.servlet.GuiceFilter-74f0d2f7==com.google.inject.servlet.GuiceFilter@74f0d2f7{inst=false,async=true,src=EMBEDDED:null},AUTO}
2024-02-17 15:04:35 DEBUG: ServletHandler@1b5141d{STOPPED} added {[/*]/[]/[]=>com.google.inject.servlet.GuiceFilter-74f0d2f7,POJO}
2024-02-17 15:04:35 DEBUG: ServletHandler@1b5141d{STOPPED} added {org.eclipse.jetty.servlet.DefaultServlet-2fb323fd==org.eclipse.jetty.servlet.DefaultServlet@892d0e3{jsp=null,order=-1,inst=false,async=true,src=EMBEDDED:null,STOPPED},AUTO}
2024-02-17 15:04:35 DEBUG: ServletHandler@1b5141d{STOPPED} added {[/api/media/*]=>org.eclipse.jetty.servlet.DefaultServlet-2fb323fd,POJO}
2024-02-17 15:04:36 DEBUG: ServletHandler@1b5141d{STOPPED} added {org.glassfish.jersey.servlet.ServletContainer-341a2625==org.glassfish.jersey.servlet.ServletContainer@a2a67006{jsp=null,order=-1,inst=false,async=true,src=EMBEDDED:null,STOPPED},AUTO}
2024-02-17 15:04:36 DEBUG: ServletHandler@1b5141d{STOPPED} added {[/api/*]=>org.glassfish.jersey.servlet.ServletContainer-341a2625,POJO}
2024-02-17 15:04:36 DEBUG: HttpField encoders loaded: [org.eclipse.jetty.http.Http1FieldPreEncoder@32100dc]
2024-02-17 15:04:36 DEBUG: ServletHandler@1b5141d{STOPPED} added {org.traccar.web.ModernDefaultServlet-5580c265==org.traccar.web.ModernDefaultServlet@5b420b12{jsp=null,order=-1,inst=false,async=true,src=EMBEDDED:null,STOPPED},AUTO}
2024-02-17 15:04:36 DEBUG: ServletHandler@1b5141d{STOPPED} added {[/*]=>org.traccar.web.ModernDefaultServlet-5580c265,POJO}
2024-02-17 15:04:36 DEBUG: o.e.j.s.ServletContextHandler@2f767160{/,null,STOPPED} added {ErrorHandler@825c28f{STOPPED},MANAGED}
2024-02-17 15:04:36 DEBUG: o.t.w.@7d17c61f{/,null,STOPPED} added {ServletHandler@600c343f{STOPPED},MANAGED}
2024-02-17 15:04:36 DEBUG: ServletHandler@600c343f{STOPPED} added {org.eclipse.jetty.proxy.AsyncProxyServlet$Transparent-65131018==org.eclipse.jetty.proxy.AsyncProxyServlet$Transparent@b8df7d4{jsp=null,order=-1,inst=false,async=true,src=EMBEDDED:null,STOPPED},AUTO}
2024-02-17 15:04:36 DEBUG: ServletHandler@600c343f{STOPPED} added {[/]=>org.eclipse.jetty.proxy.AsyncProxyServlet$Transparent-65131018,POJO}
2024-02-17 15:04:36 DEBUG: HandlerList@377ab1c{STOPPED} added {o.t.w.@7d17c61f{/,null,STOPPED},AUTO}
2024-02-17 15:04:36 DEBUG: HandlerList@377ab1c{STOPPED} added {o.e.j.s.ServletContextHandler@2f767160{/,null,STOPPED},AUTO}
2024-02-17 15:04:36 DEBUG: Creating ServletPathSpec[*.svgz] (group: SUFFIX_GLOB, prefix: "null", suffix: "svgz")
2024-02-17 15:04:36 DEBUG: Added MappedResource[pathSpec=ServletPathSpec@9727ded2{*.svgz},resource=true] to PathMappings[size=1]
2024-02-17 15:04:36 DEBUG: GzipHandler@28f13304{STOPPED,min=32,inflate=-1} mime types IncludeExclude@3787c0cf{i=[],ip=CONTAINS,e=[image/ief, image/vnd.wap.wbmp, image/jpeg, application/bzip2, image/x-portable-graymap, application/brotli, image/bmp, image/gif, image/x-icon, image/apng, audio/midi, image/webp, video/x-msvideo, image/x-xbitmap, application/x-rar-compressed, text/event-stream, image/avif, image/x-portable-bitmap, image/x-rgb, image/x-cmu-raster, application/gzip, audio/x-wav, audio/x-pn-realaudio, audio/basic, application/compress, audio/x-aiff, video/x.ms.asx, video/x.ms.asf, image/png, video/vnd.rn-realvideo, image/x-xwindowdump, image/jpeg2000, video/x-sgi-movie, audio/mpeg, image/xcf, video/mpeg, image/x-portable-pixmap, image/tiff, image/x-portable-anymap, image/x-xpixmap, application/zip, video/quicktime, application/x-xz, video/mp4],ep=CONTAINS}
2024-02-17 15:04:36 DEBUG: HandlerList@377ab1c{STOPPED} added {GzipHandler@28f13304{STOPPED,min=32,inflate=-1},AUTO}
2024-02-17 15:04:36 DEBUG: Server@e669a86{STOPPED}[11.0.19,sto=0] added {HandlerList@377ab1c{STOPPED},MANAGED}
2024-02-17 15:04:36 DEBUG: STARTING Server@e669a86{STOPPED}[11.0.19,sto=0]
2024-02-17 15:04:36 DEBUG: Server@e669a86{STARTING}[11.0.19,sto=0] added {ErrorHandler@15d92674{STOPPED},AUTO}
2024-02-17 15:04:36 INFO: jetty-11.0.19; built: 2023-12-15T20:54:39.802Z; git: f781e475c8fa9e9c8ce18b1eaa03110d510f905f; jvm 17.0.6+10
2024-02-17 15:04:36 DEBUG: Could not configure SO_REUSEPORT to false on sun.nio.ch.ServerSocketChannelImpl[unbound] - 'SO_REUSEPORT' not supported - UnsupportedOperationException (... < WebServer:223 < Main:126 < *:94 < WindowsService:184 < ...)
2024-02-17 15:04:36 DEBUG: ServerConnector@3b45242b{HTTP/1.1, (http/1.1)}{<redacted>:8080} added {sun.nio.ch.ServerSocketChannelImpl[/169.254.41.152:8080],POJO}
2024-02-17 15:04:36 DEBUG: starting Server@e669a86{STARTING}[11.0.19,sto=0]
2024-02-17 15:04:36 DEBUG: ServerConnector@3b45242b{HTTP/1.1, (http/1.1)}{:8080} added {sun.nio.ch.ServerSocketChannelImpl[/169.254.41.152:8080],POJO}
And I confirmed the UI is listening on 169.254.41.152:8080. I don't see any other web.* settings that may come into play here.
Not a showstopper for me but if there's a way around it, I would appreciate it. Thanks for a great product.
I am experimenting with the web.address feature as a means of isolating traffic on a multi-use server and have configured it to use a 2nd IP address assigned to the same NIC as the primary IP address as so:
<entry key='web.address'>172.16.0.10</entry> <entry key='web.port'>8080</entry>
However, when the traccar service is restarted, the UI is listening on some other IP in the Automatic Private IP Addressing range which coincidentally corresponds to the Remote NDIS Compatible Device psuedo NIC (I think the server's OOB management card):
PS C:\Program Files\Traccar\conf> netstat -ano | select-string ':8080' TCP 169.254.41.152:8080 0.0.0.0:0 LISTENING 824
Logs indicate no issues:
Debug log references the odd IP:
And I confirmed the UI is listening on 169.254.41.152:8080. I don't see any other web.* settings that may come into play here.
Not a showstopper for me but if there's a way around it, I would appreciate it. Thanks for a great product.