Table of Contents
In this tutorial I will share the steps to setup
https_proxy when your username or password contains special characters such as comma, @, # etc.
Error: Unable to set http_proxy or https_proxy with special characters in username or password
Normally while exporting
https_proxy we are supposed to provide the username and password along with the proxy IP and port. It would work in most cases but if the username or password contains some special characters then you may get
Resolving s... failed: Name or service not known. wget: unable to resolve host address “s”
The error output may vary depending upon the character involved in the username or password. There are two ways you can overcome this error:
Solution-1: Convert text to hex unicode
You must use mapping "hexadecimal unicode" values of respective special characters in the proxy username and password. To get the list of mapping Unicode characters follow https://unicodelookup.com/
For example, a password such as "
P@$$\/\/0,#" can be converted into
P ⇒ P <-- No lookup required @ ⇒ 0x40 $ ⇒ 0x24 $ ⇒ 0x24 \ ⇒ 0x5C / ⇒ 0x2F \ ⇒ 0x5C / ⇒ 0x2F 0 ⇒ 0 <-- No lookup required , ⇒ 0x2C # ⇒ 0x23
So if we combine this for "
P@$$\/\/0,#" we get "
Now you can export your
# export http_proxy="http://username:P0x400x240x5C0x2F0x5C0x2F00x2C0x23@server:port/"
Similarly to export
# export https_proxy="https://username:P0x400x240x5C0x2F0x5C0x2F00x2C0x23@server:port/"
Solution-2: Provide username and password with wget
Instead of going through the conversion you can also provide the username and password in plain text format with
# wget -e use_proxy=yes -e https_proxy=10.xx.xx.xx:8080 --proxy-user='user' --proxy-password='P@$$\/\/0,#' https://domain.com/file
From the man page of wget:
--proxy-user=user --proxy-password=password Specify the username user and password password for authentication on a proxy server. Wget will encode them using the "basic" authentication scheme.
This solution is only valid if you plan to use
wget or else to apply system wide proxy you can use Solution 1 where either username or password has any special characters.
In this tutorial I shared the steps to configure
https_proxy when username and/or password section contains any special characters. In the provided unicode page you can search for your char and then look out for
hexadecimal unicode value of the respective char. Next just replace the special character with the unicode value and you would be able to export the proxy in your Linux server.
I have used below external references for this tutorial guide
How to export the variable "http_proxy" when there are special characters in password?