TFTP를 사용하여 네트워크 스위치에서 ubuntu(Windows 10 Pro의 VirtualBox)로 파일을 보내거나 받으려고 하는데 오류 코드 5가 나타납니다.
아래에 언급된 단계를 수행하면 내 로컬 호스트가 TFTP 서버를 사용하는 것으로 보이며 내 로컬 호스트를 사용하여 파일을 보내고 받을 수 있습니다.
/home/abc# tftp localhost
tftp> put test
Sent 16 bytes in 0.0 seconds
tftp> get test
Received 16 bytes in 0.0 seconds
root@abc:/home/abc# ls -l /var/lib/tftpboot/
total 4
-rwxrwxrwx 1 root root 14 Sep 6 18:03 test
스위치에서 명령을 사용하여 파일을 보내거나 받을 때 오류 메시지가 나타납니다.
간단한 파일 전송 프로토콜
Opcode: 오류 코드(5)
[대상 파일 : 테스트]
오류 코드: 액세스 위반(2)
오류 메시지: 액세스 위반
[전문가 정보(경고/대응): TFTP ERROR 패킷]
[TFTP 오류 패킷]
[심각도: 경고]
[그룹:응답]
이 문제를 해결하는 방법을 안내해 주실 수 있나요?
https://icesquare.com/wordpress/how-to-setup-tftp-on-ubuntu/
먼저 필요한 모든 패키지를 설치해 보겠습니다.
sudo apt-get install xinetd tftpd tftp -y
다음으로 구성 파일을 생성해야 합니다.
sudo nano /etc/xinetd.d/tftp
파일에 다음 내용을 넣으세요.
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = var/lib/tftpboot -s
disable = no
}
server_args에는 tftp 루트 디렉터리인 /var/lib/tftpboot의 위치를 나타내는 var/lib/tftpboot가 있습니다. 루트 디렉터리 /를 건너뛰었습니다.
이제 디렉터리의 소유권을 변경해 보겠습니다.
sudo mkdir /var/lib/tftpboot
sudo chown -R nobody:nobody /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot
TFTP 서비스를 시작합니다.
sudo service xinetd stop
sudo service xinetd start
TFTP가 제대로 작동하는지 확인합니다.
netstat -na | grep LIST | grep 69
You should see something like this:
tcp 0 0 0.0.0.0:69 0.0.0.0:* LISTEN
테스트: TFTP 서버에 파일 업로드 이제 서버에 로그인하여 TFTP 서버를 테스트해 보겠습니다.
tftp localhost 및 파일 업로드:
tftp> put myfile.jpg
Sent 56733279 bytes in 5.7 seconds
Quit:
q
파일이 업로드되었는지 확인하세요.
ls -l /var/lib/tftpboot
테스트: TFTP 서버에서 파일 다운로드 이제 다른 디렉터리로 이동하여 방금 업로드한 파일을 다운로드해 보겠습니다.
cd some_other_directory
tftp 서버에 다시 로그인하십시오:
tftp localhost
파일을 가져옵니다.
tftp> get myfile.jpg
Received 56733279 bytes in 5.7 seconds
답변1
문제는 스위치 네트워크 IP와 Ubuntu 시스템 IP 주소가 다른 네트워크에 있다는 것입니다. 내 Ubuntu 컴퓨터에 고정 IP 주소(스위치 IP와 동일한 네트워크 IP)를 설정하여 문제가 해결되었습니다.