Как скрыть ip делая запрос через CURL (PHP)?
Интересует в основном можно ли замаскировать не используя proxy?
Чтоб пакет вернулся, нужно отправлять через какой-то шлюз, который знает, кому его возвращать, это может быть прокси, vpn или какой-либо ещё туннель, хоть ssh. Может изменение хеадера или еще как.
можно поменять X-Forwarded-For и некоторые неправльно написанные веб приложения будут учитывать именно этот IP, но это скорее исключение, обычно этот баг пихают в CTF'ы, но на практике ни разу не встречал Ну а если нельзя то можно ли при запросе использовать какие-то постоянные proxy, желательно конечно бесплатные, 
Да, есть сайты, которые предоставляют такие прокси, а у меня есть программа для сбора проксей по таким сайтам https://github.com/DevAlone/proxy_py много проксей мрут, но есть такие, которые работают стабильно, самая надёжная работает уже 42 дня. так же интересует можно ли сделать запрос через сервера tor.
Да, на ubuntu установить тор `sudo apt install tor`, запустить `sudo service tor start` и использовать его как socks прокси с адресом `localhost:9050`, адрес можно поменять в настройках, также можно поднять несколько таких проксей и у каждой будет свой IP адрес.
Реально можно и это работает через curl ( один, потом второй запрос..), к примеру, для получения роликов  ютуба, сначала получаем один заголовок, потом другой из списка... Гугл с этим борется. Такая холодная война давно идёт.
Надо искать пример скрипта, там всё расписано.