我在 SUSE Linux Enterprise Server 12 SP1 中遇到了 Docker 的奇怪情况。
我使用 SSH 连接到服务器。首先,我尝试运行一个简单的 nginx 服务器来测试:
docker run -d -p 8081:80 nginx:alpine --name nginxtest
Run Code Online (Sandbox Code Playgroud)
容器启动成功。然后,跑步curl http://localhost:8081就可以了!
<!-- [...] -->
<title>Welcome to nginx!</title>
<!-- [...] -->
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试从我的计算机上的浏览器访问它时,http://10.etc.etc.etc:8081请求超时。
但令人惊讶的是,如果我暂时忘记 docker,并直接从服务器使用简单的 HTTP 服务器,例如python3 -m http.server,我会得到:
Serving HTTP on 0.0.0.0 port 8000 ...
Run Code Online (Sandbox Code Playgroud)
当我从计算机上的浏览器访问它时,http://10.etc.etc.etc:8000它就可以工作了!
所以这一定是关于 docker 如何公开其端口的,但这很奇怪,因为它curl http://localhost:8081有效......
我该如何进一步排除故障并解决此问题?
注意:直到昨天我跑步时一切都运行良好systemctl restart wicked(我试图调查另一个不相关的问题)。我也尝试重新启动服务器,但没有帮助。
这是一些可能相关的更多输出......
ifconfig docker0docker0 Link encap:Ethernet HWaddr 02:49:68:4D:40:9B
inet addr:172.17.0.1 …Run Code Online (Sandbox Code Playgroud) 开发人员提供了带有规范文件的源代码。是否可以构建一个适用于所有 CentOS 7.x 构建的 RPM,这是个好主意吗?
我正在通过 iperf3 测量 tcp 和 udp 吞吐量。我在虚拟机中运行 iperf3,一台作为服务器,另一台作为客户端。VM 通过 10 Gbps 链路进行连接。结果表明tcp比udp获得更高的吞吐量。然而,正如我们所知,TCP 运行更多的算法和计算,并且还具有三向握手,那么为什么 udp 吞吐量小于 tcp?这与 tcp 和 udp 的缓冲区大小有关吗?下面是 tcp 和 udp 测量的结果。很明显,iperf 在特定时间内为 tcp 发送的数据比 udp 发送的数据多,但为什么呢?
TCP:8.88 Gbps
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 922 MBytes 7.73 Gbits/sec 1 3.04 MBytes
[ 4] 1.00-2.00 sec 1.04 GBytes 8.92 Gbits/sec 0 3.04 MBytes
[ 4] 2.00-3.00 sec 1.07 GBytes 9.15 Gbits/sec 0 3.04 MBytes
[ 4] 3.00-4.00 sec 1.05 GBytes 8.99 Gbits/sec 0 …Run Code Online (Sandbox Code Playgroud) 我正在寻求构建一组需要单点登录的服务。基本上,您登录到我的 oAuth 提供商,并且可以访问 openvpn 连接(或wireguard)和网站,无需额外的安全性,原始设置可能除外。
因此,我的问题是:如何自动化 openVpn 以便我可以执行以下两件事之一:
或者
我有一个我管理的域,它在一周前移到了DNSmadeeasy。但有时当我dig提出请求时,我会在A记录中得到一个奇怪的 IP :166.62.3.1
其他人则从不同的地点报告相同的情况。虽然它似乎是随机的,因为大多数报告正确的 IP。
DNSmadeeasy像往常一样说他们最后没有什么问题,所以我不知道这个 IP 是怎么出来的。
域是: elyseecollective.com.au
我需要在 Centos 7 服务器上使用 Nginx 模块ngx_http_auth_pam_module。由于一个包只能通过 getpagespeed 存储库获得,这不是免费的,我想自己编译它。
下面我找到的各种指令,我下载的模块和Nginx的来源,所列的编译选项Nginx的版本安装了nginx -V,然后编译的模块./configure,然后make modules,安装一些程序包修复过程中的各种错误。
但是,当我尝试配置 Nginx 以使用新编译的模块时,nginx -t给了我nginx: [emerg] module "/opt/nginx/modules/ngx_http_auth_pam_module.so" is not binary compatible in /usr/share/nginx/modules/mod-http-auth-pam.conf:1
从我读到的内容来看,这个“非二进制兼容”错误是由于已安装的 Nginx 版本与模块中的编译标志不同,但是我确保将nginx -V. 我还确保下载与安装的 Nginx 版本相同的源代码。
知道是什么导致了这个问题吗?我应该卸载 Nginx 并重新安装编译后的版本,还是有其自身的问题?
附录 :
这是整个./configure命令:
./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module …Run Code Online (Sandbox Code Playgroud) 我和很多人一样,收到一封电子邮件,说要更新我的 RDS 实例以使用新的 rds-ca-2019 证书进行 SSL 连接(以前是 rds-ca-2015,将于 2020 年 3 月 5 日到期)。他们关于该过程的文档有点稀少,并且说诸如“更新您的数据库应用程序以使用新的 SSL/TLS 证书”之类的内容。和“将证书导入您的操作系统。” 没有关于客户端所需更改的更多详细信息。
当我最初设置时,我没有安装任何证书,而是使用了 vanilla Ubuntu 18.04 EC2 映像。RDS 实例设置为使用 rds-ca-2015,当我使用 psql 连接到 RDS 时,它报告说它正确使用了 TLSv1.2。如果我查看操作系统中安装的根证书,我会发现编号为 1 到 4 的 4 个“Amazon Root CA”证书。这些证书要到 2038 年和 2040 年才会过期。
所以,我的问题有两部分:
我正在运行 Debian,并尝试使用 iptables 设置一些防火墙规则,但出现错误:
iptables/1.8.2 Failed to initialize nft: Protocol not supported
Run Code Online (Sandbox Code Playgroud)
我尝试设置什么样的规则并不重要,它只会给我同样的错误。我尝试用谷歌搜索错误但没有找到任何东西。
这些是我试图设定的规则:
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?谢谢
我只想通过远程 openvpn 服务器路由 192.168.255.0/24 的流量。
这个答案建议将以下内容添加到客户端 .ovpn
route-nopull
route 192.168.255.0 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为当我连接并使用下面的命令检查我的外部 IP 地址时,我得到的是我的 openVPN 服务器的 IP,而不是我的本地计算机。
dig +short myip.opendns.com @resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)
就上下文而言,VPN 的目的是允许多个远程客户端从任意位置相互访问,但它们应该使用默认的本地路由来处理其他所有事情:www PoE 摄像头等。我使用https://github设置了 openVPN 服务器.com/kylemanna/docker-openvpn
客户端是 Ubuntu 16.04 上的 OpenVPN 2.4.7
我的本地 .ovpn 配置
client
nobind
dev tun
remote-cert-tls server
remote 157.245.203.172 1194 udp
route-nopull
route 192.168.255.0 255.255.255.0
# various certificates / keys
redirect-gateway def1
Run Code Online (Sandbox Code Playgroud)
我的服务器 openvpn.conf
# client specific configurations
client-config-dir ccd
# allow clients to reach other
client-to-client
server 192.168.255.0 255.255.255.0
verb 3 …Run Code Online (Sandbox Code Playgroud) 如何确保 openVPN 客户端始终采用相同的 VPN IP 地址?
我已在 /etc/openvpn/ccd/ 中添加client-config-dir ccd并openvpn.conf创建了带有客户端名称的文件,例如。“/etc/openvpn/ccd/CLIENTNAME”仅包含 192.168.255.20,但此 IP 地址未分配给与 CLIENTNAME.ovpn 连接的客户端
就上下文而言,VPN 的要点是允许多个远程客户端从任意位置相互访问,但它们应该对其他所有内容使用默认本地路由:www PoE 摄像头等。OpenVPN 服务器使用 https: // /github.com/kylemanna/docker-openvpn
因此,客户端证书/ovpns的生成方式为: docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass docker run -v $OVPN_DATA: /etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn
客户端是 Ubuntu 16.04 上的 OpenVPN 2.4.7
我的本地 .ovpn 配置
client
nobind
dev tun
remote-cert-tls server
remote XXX.XXX.XXX.XXX 1194 udp
# only route the subnet
route-nopull
route 192.168.255.0 255.255.255.0 …Run Code Online (Sandbox Code Playgroud)