Localhost üzerinde belirli bir bağlantı noktasını dinleyen herhangi bir hizmeti başlatamıyorum bir Slackware linux kutusu var. Strace kullanarak hatanın bind()
çağrıda gerçekleştiğini ve hatanın EADDRINUSE (Address already in use)
:
bind(3, {sa_family=AF_INET, sin_port=htons(874), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EADDRINUSE (Address already in use)
Bu, bu bağlantı noktasını dinlemeye başlamaya çalıştığım herhangi bir işlemde olur, bu nedenle işlemin kendisiyle ilgili değildir. Yukarıdaki strace çıkışı komuttan gelir strace -ff nc -l -p 874 -s 127.0.0.1
.
Yani, bu zaten localhost port 874'te dinleyen bir süreç olduğunu gösteriyor. Ancak, bulamıyorum. Aşağıdaki komutların hiçbiri döndürmez:
netstat -aplunt | grep :874
netstat -na | grep :874
lsof -i :874
lsof -i tcp | grep 874
fuser 874/tcp
socklist | grep 874
iptables -t filter -S | grep 874
iptables -t nat -S | grep 874
iptables -t mangle -S | grep 874
conntrack -L | grep 874
Dinlemeye çalışırsam 0.0.0.0:874
aynı hatayla başarısız olur. Bir nic üzerinde yapılandırılmış IP adreslerinden birinde dinlemek TAMAM, ve dinlemek 127.0.0.2:874
de TAMAM. Farklı bir bağlantı noktasında dinleme, 127.0.0.1
veya üzerinde de iyi çalışır 0.0.0.0
.
Şimdi merak ediyorum. Ağ yığınının neden EADDRINUSE döndürdüğünü nasıl öğrenebilirim? Başka hangi şeylere bakabilirim veya daha fazla bilgi almak için başka hangi komutları çalıştırabilirim?
İlave bilgi:
- Çekirdek 4.1.31.
- Selinux burada kullanılmıyor.
- Telnet ile 127.0.0.1'e bağlanmaya çalışmak "Bağlantı reddedildi"
- Komutları root olarak çalıştırıyorum
netstat -na | grep 874
, mevcut netstat
bayraklarınızın çok kısıtlayıcı olması durumunda denerdim .
iptables -S
çıktıda herhangi bir yeri var mı?