cURL verwendet einfach den Netzwerkstack des Betriebssystems und implementiert selbst kein TCP (oder Protokolle niedrigerer Ebene).
Daher funktioniert es gut, wenn das Betriebssystem so konfiguriert ist, dass es die Netzwerkkommunikation über einen virtuellen Adapter routet, unabhängig davon, wie dieser Adapter implementiert ist.
EDIT: JULI 2013
Ich habe ein paar E-Mails bekommen, also habe ich alles in einen Blogpost eingepackt: Ссылка
Ja, aber zuerst müssen Sie das VPN auf einer separaten Schnittstelle einrichten, damit Ihr gesamter Server das VPN nicht verwendet. Ich bin kein OpenVPN-Experte, aber ich habe dies mit dem Schalter dev
getan, um das virtuelle TUN / TAP-Netzwerkgerät anzugeben: dev proxy1
. Weitere Informationen finden Sie auf der OpenVPN-Manpage.
Dann verwenden Sie diese PHP-Codezeile in Ihren Skripten.
%Vor%Ich habe das getan, damit ich alle IPs von overplay.net verwenden konnte, um Dinge auf meinem Server zu scrappen. Diese IPs ändern sich oft, also hatte ich einen Cronjob, der die ZIP-Datei von IPs zog, eine OpenVPN-Konfigurationsdatei für jede IP erstellte, jedes VPN startete und alle IPs und Schnittstellennamen in eine DB-Tabelle eingab. Dann haben meine Skripte einfach zufällige Interface-Namen aus der DB gezogen und diese in der Locke benutzt. Arbeitete eine Belohnung.