本文首發於博客園( https://www.cnblogs.com/ArrowKeys/p/12639235.html ),禁止轉載。
參考: https://github.com/wszqkzqk/deepin-wine-ubuntu/issues/222
問題的大致原因是QQ在Linux上總想走ipv6,但鑒於現在ipv6的情況,肯定是用不了的。不完美的解決方案是直接禁用本機的ipv6協議,但問題有二:一是畢竟還是有一些用戶有使用ipv6的需要,二是一些用戶反映禁用ipv6以后問題依然沒有解決。那么完美的解決方案就是在本機架一個代理,讓QQ走代理,這樣可以強制其使用ipv4,同時不對其它應用造成影響。
筆者使用的系統是Ubuntu 18.04。原issue中有人提到了v 2ray和squid,這里推薦squid這個方案,因為它在Ubuntu軟件源中,可以直接使用apt安裝,而且配置起來很簡單。
首先通過sudo apt install squid
安裝squid,然后打開/etc/squid/squid.conf
修改它的配置。這里我們需要修改2個位置。
- 找到不以“#”號開頭的
http_port
選項。該選項控制代理服務器在本機監聽的端口。將其修改為http_port 1099
。1099是參考issue中最后一個回帖者“wtdcode”給出的端口號,也可以自行選擇其它端口號。 - 找到不以“#”號開頭的
http_access deny all
選項。該選項控制可通過代理服務器的客戶端,默認的deny all
表示禁用所有。將其修改為http_access allow all
,即允許所有。
經過前述修改后保存文件,之后重啟squid服務,即sudo systemctl restart squid
,這一步可能需要一點時間。
最后在QQ登錄界面點右上角的設置圖標,將第一行的代理類型修改為“HTTP代理”,地址寫上本機地址127.0.0.1
,端口設為剛才設置的端口,確定即可。確定前也可點擊“測試”按鈕測試能否成功連接代理服務器。
后記
經筆者測試發現deepin QQ無法保存代理服務器設置。解決方案為找一個Windows環境,在其中設置QQ代理並保存。之后將我的文檔\Tencent Files\All Users\QQ
中全部文件復制出來,覆蓋到Linux下“文檔”文件夾中的對應位置(即文檔/Tencent Files/All Users/QQ
)。該方案的副作用是已記住的密碼將被清除,重新輸入一次並選擇記住密碼即可。
初步判斷是deepin QQ因為未知原因無法正常將配置寫入該文件夾下的配置文件中,但讀取配置是正常的。也因此,如果想要將代理設置改回來,需要再次在Windows環境下設置,然后將配置拷貝到Linux下。