zwe*_*nov 5 emacs proxy elisp socks
这个问题让我抓狂。我有一个本地 SOCKSv5 代理,它是系统上所有应用程序的网关。我想穿上url-retrieve-synchronously
袜子。通过以下设置:
(setq socks-noproxy '("127.0.0.1"))
(setq socks-server '("Default server" "127.0.0.1" 8010 5))
(setq url-gateway-method 'socks)
Run Code Online (Sandbox Code Playgroud)
通过纯 HTTP 进行检索工作正常:
(url-retrieve-synchronously "http://gnu.org")
#<buffer *http www.gnu.org:80*>
Run Code Online (Sandbox Code Playgroud)
但它不适用于HTTPS:
(url-retrieve-synchronously "https://gnu.org")
Run Code Online (Sandbox Code Playgroud)
它会导致:
Debugger entered--Lisp error: (file-error "make client process failed" "connection timed out" :name "gnu.org" :buffer #<buffer *url-http-temp*> :host "gnu.org" :service 443 :nowait nil)
make-network-process(:name "gnu.org" :buffer #<buffer *url-http-temp*> :host "gnu.org" :service 443 :nowait nil)
open-network-stream("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443)
open-gnutls-stream("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443)
network-stream-open-tls("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443 (:type tls :nowait nil))
open-network-stream("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443 :type tls :nowait nil)
byte-code("\306\211\n\307>\203$
Run Code Online (Sandbox Code Playgroud)
问题:如何在 Emacs 中使 HTTPS 通过袜子工作?我的版本是24.2.50/W32
据我所知,由于某种原因,open-network-stream
使用了原件socks-open-network-stream
。我尝试url-open-stream
使用edebug断点,但无法理解为什么断点没有被触发。有任何想法吗?
谢谢。
另一种方法是使用程序proxychains
从命令行启动emacs,proxychains
支持HTTPocks4和socks5代理协议。代码可能是:
proxychains emacs &
不用说,您必须在 proxychains 而不是 emacs 中配置代理设置。
PS:不要忘记在quiet_mode
其配置文件(/etc/proxychains.conf
)中设置代理链,否则详细的输出可能会让你烦恼。至少在 Fedora 上这不是默认设置。
归档时间: |
|
查看次数: |
6373 次 |
最近记录: |