Ein Diener ist meist eine Person, die sich um das häusliche Wohlergehen des Herrn bemüht.
Ein Knecht ist eine landwirtschaftliche Hilfskraft.
Aufgrund Takkat's Kommentar hier eine genauere Definition nach dwds.de:
Knecht m. ehemals 'in einem Arbeitsverhältnis bei einem Bauern stehender Landarbeiter', auch 'Diener, Untergebener, Unfreier, Unterdrückter', ahd. (8. Jh.), mhd. asächs. kneht 'Knabe, Jüngling, Bursche, junger Mann in lernender und dienender Stellung, Diener, Knappe, Krieger, Held, Lehrling, Geselle'
Daher ist Knecht Rupprecht in der Bedeutung Knappe zu sehen.
Dagegegen
Diener m. 'Aufwärter, Hausangestellter', auch 'wer im Auftrage einer Institution, in der Bindung an eine Aufgabe seine Pflicht erfüllt'
Man mag hier meinen, dass Knecht und Diener als Begriff austauschbar seien. Ich persönlich (und auch weitere Personen, die ich dazu gefragt habe) kennen Knecht jedoch ausschließlich in der Bedeutung als "Landarbeiter", der harte Arbeiten zu verrichten hat (keinesfalls würde ich einem Knecht beispielsweise die Aufgabe des Ordnens der Kleidung oder des Einlassens eines Bades zuordnen), ebenso wie ich nie den Begriff Diener für jemanden verwenden würde, der mit der Sense auf dem Feld Korn schneidet.