ipv6禁用导致rpcbind服务启动失败实例
ipv6禁用導(dǎo)致rpcbind服務(wù)啟動(dòng)失敗實(shí)例
昨天在做服務(wù)器磁盤分區(qū)擴(kuò)容的時(shí)候出現(xiàn)過一個(gè)服務(wù)啟動(dòng)的問題,在此記錄。
情景再現(xiàn):前天晚上申請(qǐng)做磁盤擴(kuò)容,得到批準(zhǔn)后,昨天早上5點(diǎn)開始做停機(jī)調(diào)整維護(hù),歷經(jīng)2個(gè)多小時(shí)的折騰,擴(kuò)充完畢,有關(guān)這部分內(nèi)容請(qǐng)參考上篇博文 (?https://blog.51cto.com/hld1992/2054837) 而后重啟機(jī)器,檢查服務(wù),nginx,php-fpm,redis,svn,nfs(?)都啟動(dòng)正常。然后,去另一臺(tái)機(jī)器上掛載nfs,問題出現(xiàn)了,nfs無響應(yīng)。回來檢查nfs服務(wù):
好嘛,rpcbind服務(wù)沒有啟動(dòng),趕緊啟動(dòng)服務(wù)。
報(bào)錯(cuò)了,根據(jù)提示使用journalctl -xe看一下日志:
[root@BZ ~]于是趕緊谷歌了下,發(fā)現(xiàn)是由于ipv6被禁用導(dǎo)致的。查看下/etc/sysctl.conf
[root@BZ ~]# less /etc/sysctl.conf | grep 'net.ipv6' net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1果然ipv6被禁用了。由于當(dāng)時(shí)情況緊急,我采取了一個(gè)比較不好的方法,把ipv6啟用了(后面還有其他方法介紹)。
[root@BZ ~]# sed -i 's@net.ipv6.conf.all.disable_ipv6 = 1@net.ipv6.conf.all.disable_ipv6 = 0@g' /etc/sysctl.conf [root@BZ ~]# sysctl -p ... net.ipv6.conf.all.disable_ipv6 = 0再次啟動(dòng)rpcbind
[root@BZ ~]# systemctl start rpcbind [root@BZ ~]# systemctl status rpcbind ● rpcbind.service - RPC bind serviceLoaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled) Active: active (running) since Tue 2017-12-26 21:48:22 EST; 7s ago Process: 2734 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS) Main PID: 2735 (rpcbind) CGroup: /system.slice/rpcbind.service └─2735 /sbin/rpcbind -w Dec 26 21:48:22 BZ systemd[1]: Starting RPC bind service... Dec 26 21:48:22 BZ systemd[1]: Started RPC bind service.啟動(dòng)成功。再啟動(dòng)nfs
[root@BZ ~]# systemctl start nfs [root@BZ ~]# systemctl status nfs ● nfs-server.service - NFS server and servicesLoaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: active (exited) since Tue 2017-12-26 21:50:05 EST; 996ms ago Process: 2761 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) Process: 2756 ExecStartPre=/bin/sh -c /bin/kill -HUP `cat /run/gssproxy.pid` (code=exited, status=0/SUCCESS) Process: 2755 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 2761 (code=exited, status=0/SUCCESS) CGroup: /system.slice/nfs-server.service Dec 26 21:50:05 BZ systemd[1]: Starting NFS server and services... Dec 26 21:50:05 BZ systemd[1]: Started NFS server and services.再次去客戶端掛載nfs就可以成功了。
========================================================================
剛才說了,啟動(dòng)ipv6當(dāng)然不是一個(gè)好的方法,下面來繼續(xù)說明下。
從前面的報(bào)錯(cuò)日志中我們可以看到,rpcbind.service依賴rpcbind.socket
既然rpcbind.socket啟動(dòng)失敗,那應(yīng)該在它的配置文件中會(huì)有關(guān)于ipv6的配置,我來找一下:
[root@BZ ~]# find /etc/ -name '*rpcbind.socket*'/etc/systemd/system/sockets.target.wants/rpcbind.socket進(jìn)去看下:
[Unit] Description=RPCbind Server Activation Socket [Socket] ListenStream=/var/run/rpcbind.sock ListenStream=[::]:111 #果然監(jiān)聽了ipv6地址,將這一行注釋即可 ListenStream=0.0.0.0:111 BindIPv6Only=ipv6-only [Install] WantedBy=sockets.target將關(guān)于ipv6的相關(guān)配置注釋后,重啟rpcbind.socket
[root@BZ ~]# systemctl restart rpcbind.socket Warning: rpcbind.socket changed on disk. Run 'systemctl daemon-reload' to reload units.systemd發(fā)現(xiàn)配置文件有改動(dòng),需要重載一下。
[root@BZ ~]# systemctl daemon-reload再次重啟
[root@BZ ~]# systemctl restart rpcbind.socket [root@BZ ~]# systemctl status rpcbind.socket ● rpcbind.socket - RPCbind Server Activation SocketLoaded: loaded (/usr/lib/systemd/system/rpcbind.socket; enabled; vendor preset: enabled)Active: active (running) since Tue 2017-12-26 22:01:45 EST; 9s ago Listen: /var/run/rpcbind.sock (Stream) 0.0.0.0:111 (Stream) #只監(jiān)聽了ipv4的111端口后記
在谷歌的過程中,發(fā)現(xiàn)還有一種方法來解決這個(gè)問題。具體就是使用dracut -v -f 命令重建下initramfs,然后重啟機(jī)器即可。
還有一個(gè)問題就是rpcbind設(shè)置開機(jī)自啟動(dòng)失敗
不知道是什么原因,希望有大神可以幫我解答啊,萬分感謝,我現(xiàn)在是把它放到了/etc/rc.d/rc.local里面了。
轉(zhuǎn)載于:https://www.cnblogs.com/gaoyuechen/p/10538525.html
總結(jié)
以上是生活随笔為你收集整理的ipv6禁用导致rpcbind服务启动失败实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面经--欢聚时代
- 下一篇: 2016域控服务器迁移,WIN Serv