Description
Is your feature request related to a problem? Please describe.
A commonly forgotten feature of Linux networking is that Linux allows you to listen to multiple IP addresses on the same interface without bridges or virtual adapters.
The problem this seems to cause, is that ttyd is only binding to one IP addresses when specifying a device even if that device has more than one IP address.
This is particularly problematic when that device's IPs are in different subnets, as the terminal can then only be accessed from one of them.
Describe the solution you'd like
Change the bind behavior of -i to work with multiple IPs assigned to the same interface.
Describe alternatives you've considered
Creating an instance for each IP
Example:
The following system is OpenWRT
# ip a
...
5: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 08:00:27:3f:9b:17 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.1/24 brd 192.168.56.255 scope global br-lan
valid_lft forever preferred_lft forever
inet 172.16.1.1/24 brd 172.16.1.255 scope global br-lan
valid_lft forever preferred_lft forever
# ttyd -i br-lan login
Then with logread (Notice it only binds to 172.16.1.1 and it never binds to 192.168.56.1)
# logread -e ttyd
...
Thu Dec 12 08:26:00 2024 daemon.notice ttyd[11463]: [2024/12/12 08:26:00:4375] N: [vh|1|default|br-lan|br-lan|7681]: lws_socket_bind: source ads 172.16.1.1
Thu Dec 12 08:26:00 2024 daemon.notice ttyd[11463]: [2024/12/12 08:26:00:4376] N: __lws_lc_tag: ++ [wsi|1|listen|default|br-lan|7681] (2)
Thu Dec 12 08:26:00 2024 daemon.notice ttyd[11463]: [2024/12/12 08:26:00:4376] N: Listening on port: 7681
Thu Dec 12 08:26:03 2024 daemon.notice ttyd[11463]: [2024/12/12 08:26:03:4677] N: received signal: SIGINT (2), exiting...
Thu Dec 12 08:26:03 2024 daemon.notice ttyd[11463]: [2024/12/12 08:26:03:4678] N: send ^C to force exit.
Activity