Jak połączyć się z Internetem z terminalu, gdy używasz proxy z uwierzytelnianiem

14

Muszę używać serwerów proxy do łączenia się z Internetem. Ustawiłem wszystkie serwery proxy w ustawieniach systemowego serwera proxy. Teraz mogę połączyć się z Internetem za pomocą przeglądarki i aplikacji.

Ale nie mogę połączyć się z Internetem z mojego terminala.

próbowałem

export http_proxy="http://username:password@proxyserver:port/" 

Jednak aplikacje terminalowe nadal nie mogą połączyć się z Internetem.

TLE
źródło
1
Które polecenie wykonujesz w terminalu, aby „połączyć się z Internetem”? Lub jak widzisz, że nie możesz się połączyć?
nohillside
1
Serwer proxy (bez żadnych), o którym tu mówisz, przekazuje twoje webpołączenia, a nie wszystkie twoje połączenia internetowe. webpołączenia wykorzystują porty 80, 443… Połączenia internetowe mogą korzystać ze wszystkich pozostałych portów zestawu 65536. Jako przykład sshpołączenie użyje portu 22, który nie będzie przechodził przez twój httpserwer proxy. Stąd pytanie patrix, które pomoże ci uzyskać lepszą odpowiedź.
dn.
@patrix ping google.com
TLE
Ping @TLE jest wyjątkiem od reguły i tak naprawdę w ogóle nie używa proxy, nawet jeśli http_proxyjest ustawiony. Ping oczekuje bezpośredniego połączenia, aw wielu przypadkach, gdy używany jest serwer proxy, ping nie powiedzie się, chociaż serwer proxy nadal będzie się łączył.
BinaryMisfit,
3
spróbuj curl -o /dev/null www.google.comzamiastping
nohillside

Odpowiedzi:

12

Terminal nie używa ustawień proxy skonfigurowanych w panelu preferencji sieci, ponieważ nie wykonuje żadnego połączenia. Terminal pozwala tylko na uruchamianie poleceń, które będą korzystać z sieci na różne sposoby.

Podczas ustawiania twojego http_proxyi https_proxyzmienne środowiskowe nie powinny zawierać prefiksów http:lub https:.

Dlatego zmienna środowiskowa w twoim przypadku powinna brzmieć:

http_proxy=username:password@proxyserver:port

Uwaga: wiele starych programów ma problemy z połączeniem przez serwery proxy, które wymagają uwierzytelnienia przed połączeniem.

Dodatkowa wskazówka:

Ze względu na naszą infrastrukturę znacznie łatwiej nam było lokalnie uruchamiać SquidMan i skonfigurować go tak, aby łączył się z naszym głównym serwerem proxy. Pozwala to maszynie lokalnej działać bezpośrednio jako serwer proxy i eliminuje wiele problemów z uwierzytelnianiem itp. Podczas korzystania z serwerów proxy na komputerach Mac, szczególnie w środowiskach mieszanych i AD.

W przypadku korzystania z tej metody nasze http_proxyi https_proxybyłyby:

http_proxy=localhost:3128
BinaryMisfit
źródło
masz na myśli, że muszę napisać eksport http_proxy = "nazwa użytkownika: hasło @ serwer proxy: port"
TLE
@TLE Prawidłowe. Terminal nie musi znać protokołu, ponieważ już wie, że jest to połączenie HTTP.
BinaryMisfit
Ale nadal nie mogę połączyć się z Internetem.
TLE
@TLE Problem najprawdopodobniej z uwierzytelnieniem. Spróbuj ustawić proxy bez podania nazwy użytkownika i hasła, co oznacza, że ​​będziesz proszony o podanie informacji podczas próby połączenia. Zwykle oznacza to, że sam serwer proxy nie obsługuje połączenia z terminala. Mieliśmy podobny problem wewnętrzny, dlatego zaproponowałem rozwiązanie SquidMan.
BinaryMisfit
wciąż nie działa??
TLE
0

Niedawno natknąłem się na ten problem i podczas wyszukiwania znalazłem ten post . Dodanie kilku punktów, które były dla mnie skuteczne (na komputerze Mac, przy użyciu terminalu):

export http_proxy=http://username:password@proxyserver:port
export HTTP_PROXY=${http_proxy}

I dla https:

export https_proxy=https://username:password@proxyserver:port
export HTTPS_PROXY=${https_proxy}

Wynika z tego, że był w stanie wykorzystać giti brewbez żadnych problemów (i uwierzytelnianie przez pełnomocnika).

Mikołaj
źródło
-1

Możesz użyć następującego polecenia w oknie terminala.

networksetup -setairportnetwork $Interface $ssID $Password

Tutaj $Interfacejest identyfikator stylu „enX” dla karty AirPort (zwykle en1, ale jest en0 na MacBooku Airs i en2 na Macu Pro i może się różnić również z innych powodów)

$ssIDto nazwa Twojej sieci, na przykład „SSID Simona”. Umieść go w cudzysłowie, jeśli zawiera spacje.

$Password to hasło WEP, WPA-PSK lub WPA2-PSK.

Azik Abdullah
źródło
1
To konfiguruje sieć, nie pozwala samemu terminalowi połączyć się przez proxy.
BinaryMisfit,