apt install tftpd-hpa
#change TFTP_ADDRESS to by setting address to 192.168.1.1:69 or the IP you need, otherwise it will listen on all IPs and interfaces which could be a security risk.
# edit /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="192.168.1.1:69"
TFTP_OPTIONS="--secure"
systemctl restart tftpd-hpa
#now edit our isc dhcp server /etc/dhcp/dhcpd.conf
#under the subnet declaration:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.200;
#deny unknown-clients;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
next-server 192.168.1.1;
filename "pxelinux.0";
}
#how to exclude hosts from receiving a DHCP
# add this in the subnet declaration
host whatevernameyouwant {
hardware ethernet 00:10:28:e2:49:2e;
ignore booting;
}
#comment out the ignore booting and restart dhcpd if you want to re-enable it
###
apt install syslinux pxelinux
#for MBR copy this
cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/menu.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/memdisk /srv/tftp/
cp /usr/lib/syslinux//modules/bios/mboot.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/chain.c32 /srv/tftp/
cp /usr/lib/syslinux//modules/bios/libutil.c32 /srv/tftp/
mkdir /srv/tftp/images
mkdir /srv/tftp/pxelinux.cfg
vi /srv/tftp/pxelinux.cfg/default
default menu.c32
prompt 5
timeout 300
MENU TITLE Menu
LABEL rtt-Diagnostic
MENU rtt-Diagnostic
kernel ../images/kernelfs
service isc-dhcp-server restart
debian, ubuntu, linux, tftpd, hpa, server, tutorialapt, install, tftp_address, ip, ips, interfaces, edit, etc, default, tftp_username, quot, tftp, tftp_directory, srv, tftp_options, systemctl, restart, isc, dhcp, dhcpd, conf, subnet, declaration, netmask, routers, domain, servers, filename, pxelinux, exclude, hosts, receiving, whatevernameyouwant, hardware, ethernet, booting, enable, apt, syslinux, mbr, cp, usr, lib, modules, bios, ldlinux, memdisk, mboot, libutil, mkdir, images, cfg, vi, prompt, timeout, label, rtt, diagnostic, kernel, kernelfs,