Websocket binds to wrong IP address

Dear All,

We run several Janus servers (Ubuntu 20.04.6), each with one network card and two IP addresses (“a.b.c.1” and “a.b.c.2”).

The server is accessed via port 8443, signaling via websocket port 443.

  • in janus.jcfg
    interface=“a.b.c.1”
  • janus.transport.http.jcfg
    http=false
    https=true
    secure_port=8443
    secure_ip=“a.b.c.1”
  • in janus.transport.websocket.jcfg
    ws=false
    wss=true
    wss_port=443
    wss_ip=“a.b.c.1”

Everything works fine. Now we have installed a new server (Ubunt 24.04.1) with the same configuration. After startup, even though “a.b.c.1” is configured, wss binds to “a.b.c.2”. No other service uses port 443.

What I don’t understand is why, even though a.b.c.1 is in jcfg, it is binding to a.b.c.2?

What’s interesting:

  • If in netplan the IP addresses are in order a.b.c.1 to a.b.c.2, websocket binds to a.b.c.2.
  • If a.b.c.2, a.b.c.1 are in order, then websocket binds to a.b.c.1.
    We use libwebsocket 4.3.3-1.1build3.

I would appreciate any ideas. And thanks for this great product!

From the log (debug level=6):

Secure Websockets server started (port 443)…
Admin Websockets server disabled
Secure Admin Websockets server disabled
JANUS WebSockets transport plugin initialized!
Version: 1 (0.0.1)
[janus.transport.websockets] JANUS WebSockets transport plugin
This transport plugin adds WebSockets support to the Janus API via libwebsockets.
Plugin API version: 8
Janus API: enabled
Admin API: disabled
WebSockets thread started
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9210] D: _lws_state_transition: system: changed 1 ‘CONTEXT_CREATED’ → 2 ‘INITIALIZED’
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: lws_state_notify_protocol_init: waiting for netlink coldplug
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: _report: system: prot_init: rejected ‘INITIALIZED’ → ‘IFACE_COLDPLUG’
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: lws_state_transition_steps: CONTEXT_CREATED → INITIALIZED
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: lws_protocol_init:
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: [vh|1|default|eth0|eth0|443]: lws_protocol_init_vhost: not instantiating http-only
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: [vh|1|default|eth0|eth0|443]: lws_protocol_init_vhost: init default.http-only
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: [vh|1|default|eth0|eth0|443]: lws_protocol_init_vhost: not instantiating janus-protocol
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: [vh|1|default|eth0|eth0|443]: lws_protocol_init_vhost: init default.janus-protocol
[WSS-0x7a00757ff3d0] 27 (LWS_CALLBACK_PROTOCOL_INIT)
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: lws_plat_drop_app_privileges: not changing group
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: lws_plat_drop_app_privileges: not changing user
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 1
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: route list size 1
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTA_DST: a.b.c.0
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTA_SRC: a.b.c.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 1
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: route list size 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTA_DST: 127.0.0.0
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTA_SRC: 127.0.0.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: ifidx 1
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: route list size 3
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: Local addr: RTA_DST → added to RTA_SRC
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTA_DST: 127.0.0.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTA_SRC: 127.0.0.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: ifidx 1
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: route list size 4
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9211] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9211] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_DST: 127.255.255.255
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_SRC: 127.0.0.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: ifidx 1
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 3
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: Local addr: RTA_DST → added to RTA_SRC
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_DST: a.b.c.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_SRC: a.b.c.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: route list size 5
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: Local addr: RTA_DST → added to RTA_SRC
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_DST: a.b.c.2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_SRC: a.b.c.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: route list size 6
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_DST: a.b.c.255
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_SRC: a.b.c.1
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 3
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 92: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_table_dump:
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_entry_dump: gw: a.b.c.254, ifidx: 2, pri: -1, proto: 4
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_entry_dump: dst: a.b.c.0/24, src: a.b.c.1/0, ifidx: 2, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_entry_dump: dst: 127.0.0.0/8, src: 127.0.0.1/0, ifidx: 1, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_entry_dump: dst: 127.0.0.1/32, src: 127.0.0.1/0, ifidx: 1, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_entry_dump: dst: a.b.c.1/32, src: a.b.c.1/0, ifidx: 2, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_routing_entry_dump: dst: a.b.c.2/32, src: a.b.c.1/0, ifidx: 2, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a0034001380
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a0034001bc0
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a0034002220
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a0034001a30
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a00340017f0
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a0034001fa0
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 42, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: _lws_smd_msg_destroy: destroy msg 0x7a00340010c0
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: RTA_DST: fe80::
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 1
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9212] I: rops_handle_POLLIN_netlink: route list size 7
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9212] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: Local addr: RTA_DST → added to RTA_SRC
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTA_DST: ::1
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: ifidx 1
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: route list size 8
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: Local addr: RTA_DST → added to RTA_SRC
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTA_DST: fe80::bacb:29ff:fea8:211a
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 2
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: _realloc: size 144: rops_handle_POLLIN_netlink
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: route list size 9
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: _realloc: size 63: lws_smd_msg_alloc
[libwebsockets][DEBUG] [2024/12/23 21:52:46:9213] D: lws_cancel_service:
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTM 24
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTA_DST: ff00::
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: ifidx 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: NEWROUTE rtm_type 5
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_table_dump:
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: gw: a.b.c.254, ifidx: 2, pri: -1, proto: 4
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: a.b.c.0/24, src: a.b.c.1/0, ifidx: 2, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: 127.0.0.0/8, src: 127.0.0.1/0, ifidx: 1, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: 127.0.0.1/32, src: 127.0.0.1/0, ifidx: 1, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: a.b.c.1/32, src: a.b.c.1/0, ifidx: 2, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: a.b.c.2/32, src: a.b.c.1/0, ifidx: 2, pri: -1, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: fe80::/64, ifidx: 2, pri: 256, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: ::1/128, src: ::1/0, ifidx: 1, pri: 0, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_routing_entry_dump: dst: fe80::bacb:29ff:fea8:211a/128, src: fe80::bacb:29ff:fea8:211a/0, ifidx: 2, pri: 0, proto: 2
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_smd_msg_destroy: destroy msg 0x7a0034001fa0
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_smd_msg_destroy: destroy msg 0x7a00340017f0
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_smd_msg_deliver_peer: deliver cl 0x4, len 13, refc 1, to peer 0x5bd4d0ab3420
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: _lws_smd_msg_destroy: destroy msg 0x7a0034001a30
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: RTM 3
[libwebsockets][INFO] [2024/12/23 21:52:46:9213] I: rops_handle_POLLIN_netlink: *** Unknown RTM_3
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 2 ‘INITIALIZED’ → 3 ‘IFACE_COLDPLUG’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 3 ‘IFACE_COLDPLUG’ → 4 ‘DHCP’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 4 ‘DHCP’ → 5 ‘CPD_PRE_TIME’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 5 ‘CPD_PRE_TIME’ → 6 ‘TIME_VALID’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 6 ‘TIME_VALID’ → 7 ‘CPD_POST_TIME’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 7 ‘CPD_POST_TIME’ → 8 ‘POLICY_VALID’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 8 ‘POLICY_VALID’ → 9 ‘REGISTERED’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 9 ‘REGISTERED’ → 10 ‘AUTH1’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 10 ‘AUTH1’ → 11 ‘AUTH2’
[libwebsockets][DEBUG] [2024/12/23 21:52:47:0215] D: _lws_state_transition: system: changed 11 ‘AUTH2’ → 12 ‘OPERATIONAL’
[libwebsockets][INFO] [2024/12/23 21:52:47:0215] I: lws_state_transition_steps: INITIALIZED → OPERATIONAL

We match the configured IP with the interface name by iterating the available network interfaces and checking for their IPs.

Maybe for some reason your netplan configuration tricks the helper to fetch the wrong iface?
What’s the output of ip addr ?

Thank you for your reply.

(I replaced a.b.c.1 with a.b.c.222 and a.b.c.2 with a.b.c.223 which are the real last digits)

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether b8:cb:29:a8:21:1a brd ff:ff:ff:ff:ff:ff
altname eno1
altname enp4s0f0
inet a.b.c.223/24 brd a.b.c.255 scope global eth0
valid_lft forever preferred_lft forever
inet a.b.c.222/24 brd a.b.c.255 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::bacb:29ff:fea8:211a/64 scope link
valid_lft forever preferred_lft forever

and now websocket binds to a.b.c.222

When I change it in netplan to

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether b8:cb:29:a8:21:1a brd ff:ff:ff:ff:ff:ff
altname eno1
altname enp4s0f0
inet a.b.c.222/24 brd a.b.c.255 scope global eth0
valid_lft forever preferred_lft forever
inet a.b.c.223/24 brd a.b.c.255 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::bacb:29ff:fea8:211a/64 scope link
valid_lft forever preferred_lft forever

then it binds to a.b.c.223

On our other servers the two IP addresses are not a problem, websocket is correctly binds to the first one e.g:

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 2c:f0:5d:49:07:89 brd ff:ff:ff:ff:ff:ff:ff:ff
inet a.b.c.224/24 brd 195.70.38.255 scope global eno1
valid_lft forever preferred_lft forever
inet a.b.c.229/24 brd 195.70.38.255 scope global secondary eno1
valid_lft forever preferred_lft forever
inet6 fe80::2ef0:5dff:fe49:789/64 scope link
valid_lft forever preferred_lft forever

it binds to a.b.c.224

As I suspected you have multiple IP addresses associated to the same network interface, hence the one picked up by our helper is unpredictable. In your case it seems to prefer always the last one in the list.
Please open an issue on GitHub so we can discuss about potential fixes.