Чем отличается nat от proxy? чем отличается proxy от vpn?
Очень внятно все написано на википедии.
Nat это просто маршрутизация пакетов. Это часть функционала TCP/IP протокола.
Прокси - отдельный софт, который работает с конкретным протоколом, например http/https, и следовательно разбирает эти пакеты для более гибкой настройки, логирования и т.д. Вдобавок программа-клиент должна уметь работать через прокси (можно конечно сделать прозрачный прокси на маршрутизаторе но это уже отдельная тема), но соответственно прокси подойдет только для http/https.
VPN - virtual private network, вы поднимаете виртуальный интерфейс и подключаетесь к удаленному ресурсу, создавая виртуальную локальную сеть поверх другого подключения. В результате между вашим и удаленным устройством получается как бы прокинут виртуальный кабель прямого подключения, который снаружи выглядит как зашифрованный канал, внутри которого что-то передается.
Через vpn можно подключиьтся к удаленному прокси серверу, таким образом все запросы между вашим компом и прокси сервером будут зашифрованными для внешнего наблюдателя.
Тот факт, что все они "гонят трафик через себя" - совершенно бесполезное обобщение, приводящее к странному вопросу. В сетях абсолютно все "гонит трафик через себя"... почему тогда не спросить, "чем отличается nat от витой пары, а она - от адаптера WiFi"? Тем и отличаются, что это разные вещи, предназначенные для решения разных задач, и "отличий" можно придумать, сколько угодно. Например, nat отличается от proxy по определению местом, где происходит магия. nat происходит на границе сети, т.е. в маршрутизатое (железном или софтовом), в то время, как proxy может находиться где угодно. Но, по сути, никто не запрещает доступаться к proxy через vpn, работающую поверх nat... в подавляющем большинстве случаев это именно так и происходит )))