SSD даст прирост. Ощутимый. И грузится будет быстрее и стартовать все программы тоже будут быстрее (и все дисковые операции сильно выиграют - а это и прогрузка текстур в GTA и переходы между уровнями во всяких играх, в общем я бы поставил если есть возможность), однако размер 120 гигов, это почти тот минимум который нужен, скорее всего, на него кроме ОС и пары (а то и одной) игры ничего не влезет.
Память, не так сильно. 8-мь гигов приличный размер, его увеличение до 16 не сильно скажется на производительности.
У меня железо:
i5 3,4
16 RAM
2 SSD + 2 HDD
GTX 1070
Ну, раз вам "понятно, веб-разработка", то вспомните о том, где вся эта "веб-разработка" крутится и какие операционные системы стоят на подавляющем большинстве серверов.
Современные браузеры самые популярные пожиратели памяти.
4гб по текущим меркам очень мало, для комфортной работы надо 8-16гб.
Увеличение памяти улучшит ситуацию однозначно, а вот насколько это вопрос.
В вашем ноутбуке есть еще одно узкое место - диск.
В идеале и его поменять на SSD.
Дебажте по частям.
1. на виртуалке Mysql слушает на 0.0.0.0 или на нужном IP ? или только 127.0.0.1 ?
2. на виртуалке iptables ? чо с правилами?
3. на хосте iptables ? чо с правилами?
4. вы хотите проброс через ssh именно порта, или чтоб порт был виден наружу с хоста?
5. проверьте подключение и логин пароль.
Для начала - я за гугл. В книгах можно закопаться и сожрать много не нужной инфы на данный момент. Ставьте задачу, решайте ее, потом в книги для систематизации знаний.
iptables - это по своей сути "файрвол". Но никак не средство маршрутизации, хотя есть варианты.
А Вам необходимо реализовать source routing на linux машине. Для этого как раз таки и придуман ip rules.
Сделайте дополнительные таблицы маршрутизации и переправляйте в них пакеты через ip rules.
А если у вас пользователи получают фиктивные IP адреса, а для выхода в интеренет используется NAT, тогда все еще проще. Делайте SNAT в iptables. и "зана(ч|т)ивайте" каждого пользователя тем адресом, который принадлежит интерфейсу, через который он должен получить выход в интернет.
1. не нужно писать никаких скриптов, команду для копирования можно записать непосредственно в кроне.
2. crontab -e и вставляете время и нечто вроде rsync -avzh /from /to. время можно сгенерировать при помощи crontab.guru
в итоге должно получиться что-то вроде: 0 0 * * * rsync -avzh /from /to - запуск бекапа каждый день в полночь.