this post was submitted on 18 Jan 2024
21 points (86.2% liked)

Linux

48052 readers
1172 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hello! I (tried, at least) converted an old laptop to a Debian home server, and I was trying to set up duckdns.org and to enable port forwarding on my router. internet connection was working, I installed packages, docker, immich, etc, and then suddenly (I don't know exactly when) it refuses to connect to the internet. It does connect to local addresses (I can ssh into it) but ping google.com and any other internet-involving command fail. I had set up a rule on the router to forward port 80 to the device's port 80, but I then removed the rule and it still does not connect to the internet. I rebooted the router but nothing changed. Any idea what could be? the router is a Vodafone router.

I changed the hostname to debianserver but on the router it is still written debian. Also, it's the only device with unknown ipv6

thanks in advance!

EDIT: I rebooted again the server, and now ipv6 is not unknown anymore, and the hostname is correct. however, it still does not connect to the internet

EDIT 2:

only one device (debianserver) has this problem, other devices work as before

EDIT 3:

I don't know if it's useful or not, but if I boot a live debian USB in the server internet works

~~SOLUTION:~~ aaaaand no it does not work, after restarting docker it seems to work because all the brodges are yet to be created and it takes some time, after like 30 seconds it does not work as before :(

  • edit the file /lib/systemd/system/docker.service
  • append the flag --bip=192.168.3.1/24 to ExecStart=....
  • systemctl daemon-reload
  • systemctl restart docker

docker was the fucker that messed everything up and made me lose a few hours!

EDIT 4:

it seems that ip route flush 0/0 restores the internet connectivity until reboot... I don't know what does this means but can be a temporary workaround I guess? I really have no idea how to solve this

FINAL EDIT: I gave up. I removed debian and installed fedora, and now it all works like a charm

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 9 months ago (1 children)

Does ping 8.8.8.8 work? (To check if it's DNS)

What's ip route show say? (Just to try to narrow down whether it's an issue with the server's config or the router's)

What's traceroute 8.8.8.8 display?

[–] [email protected] 3 points 9 months ago (2 children)

thanks for the answer!

ping 8.8.8.8 fails, and I don't have traceroute installed (and no internet to install it)

tubbadu@debianserver:~$ ip route show
0.0.0.0 dev veth3492bf7 scope link
0.0.0.0 dev vethc1bf668 scope link
0.0.0.0 dev vethb41fd7e scope link
0.0.0.0 dev veth2e39932 scope link
0.0.0.0 dev veth68451d9 scope link
default dev veth3492bf7 scope link
default dev vethc1bf668 scope link
default dev vethb41fd7e scope link
default via 192.168.1.1 dev enp1s0
169.254.0.0/16 dev veth68451d9 proto kernel scope link src 169.254.210.75
169.254.0.0/16 dev veth2e39932 proto kernel scope link src 169.254.242.12
169.254.0.0/16 dev vethb41fd7e proto kernel scope link src 169.254.185.90
169.254.0.0/16 dev vethc1bf668 proto kernel scope link src 169.254.225.22
169.254.0.0/16 dev veth3492bf7 proto kernel scope link src 169.254.123.220
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-56cf32fc7cde proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.9
192.168.1.1 dev enp1s0 scope link
[–] [email protected] 4 points 9 months ago* (last edited 9 months ago) (1 children)

This is kind of a nutty network config. It looks like docker is setting up extra default routes, which I could easily see fouling everything up. As a first experiment (warning, this may ruin your networking until the next reboot):

ip route flush 0/0
ip route add default via 192.168.1.1 dev enp1s0

... and see if that makes things work (start with ping 192.168.1.1 and ping 8.8.8.8). If that solves the problem, then I think something about your docker config is adding stuff to your networking that's causing the problem; maybe remove/disable docker completely and then re-add docker things one at a time to see where the problem comes in.

[–] [email protected] 2 points 9 months ago (1 children)

okay, I thought to have solved the problem but I was wrong, here I go again. When I docker compose up -d the immich server (the only one I have installed) all those routes are created, and apparently some of them conflicts with something else and now my host has no internet connection. however it seems that ip route flush 0/0 solves the problem until the reboot, which is strange. the other command returns RTNETLINK answers: File exists

[–] [email protected] 5 points 9 months ago* (last edited 9 months ago)

Hm. Yeah, that's weird. The default routes you're seeing should basically never exist, so it sounds like there's some kind of manual network config happening inside the Docker container that's creating a broken network.

What does docker network inspect [network] say for each of your Docker networks (substituting each Docker network for "[network]")? What's the network section of docker-compose.yml look like?

[–] [email protected] 3 points 9 months ago

Try removing all the superfluous default routes.