Eu só precisava definir o kernel no Digitalocean. Agora eu tenho o kernel correto (4.4.0.22) e o iptables também está funcionando.
Eu atualizei o Ubuntu 15.10 para 16.04 e em algum lugar deve ter acontecido o meu problema.
Primeiramente, percebi meu problema quando quis fazer sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
. Lá cheguei:
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.2.0-25-generic/modules.dep.bin'
modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.2.0-25-generic
iptables v1.6.0: can't initialize iptables table 'filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Ok, então há um problema com /lib/modules/4.2.0-25-generic
...
Então tentei reparar com sudo depmod
. Mas eu tenho:
depmod: ERROR: could not open directory /lib/modules/4.2.0-25-generic: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
Agora eu queria reconstruir o kernel com sudo apt-get install --reinstall linux-...
, aqui estavam algumas versões como:
linux-image-3.13.0-24-generic
linux-image-3.4.0-4-goldfish
linux-image-4.4.0-21-generic
linux-image-4.4.0-21-lowlatency
linux-image-4.4.0-22-generic
linux-image-4.4.0-22-lowlatency
mas não há linux-image-4.2.0-25-generic
. Coisa estranha. Então, ao atualizar o Linux, foi configurada a versão antiga e errada do kernel de alguma forma.
Agora quero ver onde esta versão está salva. E a encontrei no comando uname -r
. Então apt-get install linux-image-'uname -r'-dbgsym
, foi como:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-4.2.0-25-generic-dbgsym
E: Couldn't find any package by glob 'linux-image-4.2.0-25-generic-dbgsym'
E: Couldn't find any package by regex 'linux-image-4.2.0-25-generic-dbgsym'
Mas não tenho idéia de como alterar o uname -r
à mão. E eu também não sei porque eu tenho essa versão errada. E o mais importante, se for uma boa ideia alterar o uname
.
Btw eu uso Digitalocean e atualizei via do-release-upgrade
.
Eu só queria ver meu kernel atual. E é realmente 4.4.0-22:
sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-22-generic
Found initrd image: /boot/initrd.img-4.4.0-22-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
mas o uname ainda diz:
uname -r
4.2.0-25-generic
Alguém pode me explicar o que pode ter acontecido e como resolver?
Você não pode instalar seu próprio kernel ou módulos de kernel em um VPS. Você deve consultar seu host se você precisa de certos módulos do kernel.
Acho que o módulo filter
certamente deve ser incluído.