先把原先安裝的弱小tftp server移掉,(其實把xinetd stop掉再移除會比較好,不過我有點懶..就直接上了)
apt-get purge tftpd
這邊指的弱小是指,它不能在client上傳檔案自動產生檔案,需要使用者手動產生,並修改其屬性。其實這個也不算弱小,它嚴格來說是比較安全的。但剛好卡到我的需求,只好把它斬了。
安裝tftpd-hpa:
apt-get install tftpd-hpa
接著設定一下設定檔:
vi /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
RUN_DAEMON="yes"
TFTP_OPTIONS="-l -c -s"
比較重要的是TFTP_OPTIONS="-l -c -s"
-c: Allow new files to be created
-s: Change root directory on startup.
-l: Run the server in standalone (listen) mode, rather than run from inetd.
所以我們就不再需要靠xinetd來執行tftpd了
ps axnu | grep tftp
可以看到tftp兀自好好的執行中:
Apr24 0:00 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 -l -c -s /tftpboot
2016/05/04 更新,在網路上找資料,結果找到自己的文章,還滿好笑的。
補一下fedora上面的處理方式:
wget https://sourceforge.net/projects/cacti-reportit/files/cacti-reportit/reportit_v075a/reportit_v075a.tar.gz
tar xf tftp-hpa-5.2.tar.xz
cd /usr/src/tftp-hpa-5.2
先把xinetd停掉:(舊的tftpd是依附在xinted下面跑的)
/etc/init.d/xinted stop
把舊的tftpd-server移掉:
rpm -e tftp-server-0.49-6.fc13.x86_64
./configure
make
make install
這樣就好了。
我打算把這個tftpd給xinetd管
cp tftp-xinetd /etc/xinetd.d/tftp
改一下這個檔的內容
disable = no (本來是yes)
server_args = -c -s /tftpboot (本來沒有加 -c)
這邊就不加-l了,因為我不打算讓它standalone去跑
最後再把xinted on 起來
/etc/init.d/xinted start
檢查一下:
[root@MARS src]# netstat -anupl | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 24612/xinetd
最後測試一下:(這個檔案原先當然不能存在你的tftpboot中,不然就沒有意義了)
tftp localhost -c put ifDescr
在你的tftpboot中應該產生這個檔案了,而且他不是空的。
在RHEL8 (CentOS 8) ,並沒有tftpd-hpa可以選,其實我們只要編輯既有的tftp-server的設定檔就可以滿足我們的需求了:
cd /usr/lib/systemd/system/
vi tftp.service
重點是-c代表create
[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd
[Service]
ExecStart=/usr/sbin/in.tftpd -s -c /var/lib/tftpboot
StandardInput=socket
[Install]
Also=tftp.socket
設定完成後,因為我們有調設定檔,要讓systemctl重讀一下:
systemctl daemon-reload
接著重啟它:
systemctl restart tftp
最後看一下狀態:
systemctl status tftp
如果有這一行就ok了。
/usr/sbin/in.tftpd -s -c /var/lib/tftpboot
沒有留言:
張貼留言