apt-key自从我切换到 Ubuntu 17.04 以来,通过系统地添加 gpg 密钥失败了(不过我怀疑它是否直接相关)。Spotify 的 repo 密钥示例:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
Executing: /tmp/apt-key-gpghome.wRE6z9GBF8/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
gpg: keyserver receive failed: No keyserver available
Run Code Online (Sandbox Code Playgroud)
如果我删除hkp://前缀,同样的事情。
上下文:我使用CNTLM来处理本地公司代理。设置环境变量(在 中/etc/environment):
$ env | grep 3128
https_proxy=http://localhost:3128
http_proxy=http://localhost:3128
ftp_proxy=http://localhost:3128
Run Code Online (Sandbox Code Playgroud)
/etc/apt/apt.conf已配置(apt命令工作正常):
$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://localhost:3128";
Acquire::https::Proxy "http://localhost:3128";
Acquire::ftp::Proxy "http://localhost:3128";
Run Code Online (Sandbox Code Playgroud)
最后,指定的密钥服务器似乎可以访问:
$ curl keyserver.ubuntu.com:80
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head> …Run Code Online (Sandbox Code Playgroud) 我通过运行以下命令连接到远程 ssh 服务器:
ssh -D 12345 bob@myserver.com
Run Code Online (Sandbox Code Playgroud)
这将创建一个袜子代理,我可以将其与 Firefox 一起使用以绕过我所在国家/地区的审查制度。但是,我无法在命令行中利用它。
假设我的国家/地区阻止访问 youtube。如何使用 ssh 连接运行命令,例如:
youtube-dl "youtube.com/watch?v=3XjwiV-6_CA"
Run Code Online (Sandbox Code Playgroud)
不被政府封杀?如何为所有终端命令设置袜子代理?
我知道有两个 SOCKS 代理支持任何传出 TCP 连接的透明代理:Tor和redsocks。与 HTTP 代理不同,这些 SOCKS 代理可以透明地代理任何传出 TCP 连接,包括加密协议和没有元数据或标头的协议。
这两个代理都需要使用 NAT 将任何传出 TCP 流量重定向到代理的本地端口。例如,如果我TransPort 9040在本地机器上运行 Tor ,我需要添加这样的 iptables 规则:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
Run Code Online (Sandbox Code Playgroud)
据我所知,这将与替换原来的目的地IP和端口127.0.0.1和9040,所以考虑到这是一个加密的数据流(如SSH)或一个无头(如域名注册),请问代理知道原来的目的IP和端口?
我已经阅读了关于袜子的维基百科文章,但找不到有关客户端和代理服务器之间加密的信息。只有有关身份验证的信息。
socks5 连接是纯文本吗?
我正在寻找一种方法来刷新 CentOS 6 上的本地 DNS 缓存。
系统没有运行任何 DNS 服务器或任何东西,我希望让每个 DNS 查询都发送到配置的名称服务器,即使是重复的。
我在网上找到的大部分内容都告诉我要做service nscd restart、重新加载或做nscd -i hosts。但是,似乎没有人刷新缓存。
所以我想知道是否有人对我如何做到这一点有想法。我需要翻转内核中的某种开关吗?任何类型的工作都很好。
我通过 SSH 连接到远程/主机(同一网络/局域网)的机器可以访问 Internet,但主机不能。
在主机上运行更新和安装包变得非常不方便,因为我必须在本地启动代理,然后配置远程机器才能使用它。
所以我想知道是否有更简单的方法可以通过 SSH 或其他方式做到这一点?
我意识到其中的复杂性,但很想知道。
plink通过 Emacs使用(如果重要的话)。
为了避免每次将详细信息添加到~/.ssh/config:
$ awk '/Host socks-proxy/' RS= ~/.ssh/config
Host socks-proxy
Hostname pcit
BatchMode yes
RequestTTY no
Compression yes
DynamicForward localhost:9118
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个systemd-user服务单元定义文件:
$ cat ~/.config/systemd/user/SocksProxy.service
[Unit]
Description=SocksProxy Over Bridge Host
[Service]
ExecStart=/usr/bin/ssh -Nk socks-proxy
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
我让守护进程重新加载新的服务定义,启用新服务,启动它,检查它的状态,并验证它正在侦听:
$ systemctl --user daemon-reload
$ systemctl --user list-unit-files | grep SocksP
SocksProxy.service disabled
$ systemctl --user enable SocksProxy.service
Created symlink from ~/.config/systemd/user/default.target.wants/SocksProxy.service to ~/.config/systemd/user/SocksProxy.service.
$ systemctl --user start SocksProxy.service
$ systemctl --user status SocksProxy.service
? …Run Code Online (Sandbox Code Playgroud) 我在我大学的代理服务器后面。它使用简单的用户名和密码验证。我将代理服务器连接到端口 3128。现在我想通过 telnet 简单地说出互联网上的任何网站,例如
$ telnet www.google.com 80
Run Code Online (Sandbox Code Playgroud)
这给了我
error telnet: could not resolve www.udacity.com/80: Name or service not known
Run Code Online (Sandbox Code Playgroud)
如何定义 telnet 的代理设置?我已经设置了环境变量http_proxy和HTTP_PROXY. 还应用了系统范围的代理。
我有一个在 上运行的服务(docker 注册表)port 5000,我已经安装了 nginx 以将 http 请求从 重定向8080到5000。如果我卷曲localhost:5000它可以工作,但是当我卷曲它时,localhost:8080我会收到一个错误的网关错误。
nginx配置文件:
upstream docker-registry {
server localhost:5000;
}
server {
listen 8080;
server_name registry.mydomain.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
proxy_pass http://docker-registry;
}
location /_ping {
auth_basic off;
proxy_pass http://docker-registry;
}
location /v1/_ping {
auth_basic off;
proxy_pass http://docker-registry;
}
}
Run Code Online (Sandbox Code Playgroud)
在/var/log/nginx/error.log我有:
[crit] 15595#0: *1 connect() to [::1]:5000 failed (13: Permission denied) …Run Code Online (Sandbox Code Playgroud)