客户端到客户端的通信在 AWS Lightsail Debian Linux Open*** 服务器上不起作用
Posted
技术标签:
【中文标题】客户端到客户端的通信在 AWS Lightsail Debian Linux Open*** 服务器上不起作用【英文标题】:Client-to-client communication not working on AWS Lightsail Debian Linux Open*** server 【发布时间】:2021-12-23 14:04:41 【问题描述】:我有一个运行 Linux Debian 10 的 AWS Lightsail 服务器。我在 AWS 服务器上设置了一个 Open*** 服务器。我希望能够允许客户端到客户端的通信,但甚至无法在两个客户端(client1-rpi RaspberryPi OS,client2-Mac OSX Montery)之间进行 ping。我将用变量标记以下 IP 以避免混淆:
AWS 面向 Internet 的静态公共 IP:x.x.x.x
AWS 服务器的 LAN IP:y.y.y.y
Open*** 默认服务器 IP:z.z.z.z (10.8.0.1)
*** 端口:PPPP
以下是我当前的配置,相关数字已更改: server.conf:
port PPPP
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server z.z.z.z 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.0.0.1"
push "dhcp-option DNS 1.1.1.1"
push "redirect-gateway def1 bypass-dhcp"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key
crl-verify crl.pem
ca ca.crt
cert server_.crt
key server_.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/open***/ccd
status /var/log/open***/status.log
verb 3
client-to-client
push "route z.z.z.z 255.255.255.0"
client1.o***/client2.o***:
client
proto udp
explicit-exit-notify
remote x.x.x.x PPPP
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_ name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
<ca>
-----BEGIN CERTIFICATE-----
CERTIFICATE INFO
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
CERTIFICATE INFO
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
CERTIFICATE INFO
-----END PRIVATE KEY-----
</key>
<tls-crypt>
#
# 2048 bit Open*** static key
#
-----BEGIN Open*** Static key V1-----
CERTIFICATE INFO
-----END Open*** Static key V1-----
</tls-crypt>
ccd 文件(client1):
ifconfig-push 10.8.0.2 255.255.255.0
push "route-gateway 10.8.0.1"
ccd 文件(client2):
ifconfig-push 10.8.0.2 255.255.255.0
push "route-gateway 10.8.0.1"
所以在这一点上,我已经尝试路由 iptables。虽然我真的只是复制并粘贴了一些this article 所说的内容。我可以连接两个客户端,并且能够通过检查我在 Mac 上的公共 IP(它与 x.x.x.x 匹配)来测试通过 *** 的互联网连接。我能够上网。我成功获得了分配给客户端的所需IP地址,我可以ping通10.8.0.1,但我无法ping通其他客户端。
我花了几个小时寻找有类似问题的人并尝试复制他们的修复程序,但我现在不确定该怎么做。无论我做什么,我在 ping 时都会收到相同的以下错误:
PING 10.8.0.2 (10.8.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
我不仅希望能够 ping,还希望能够通过 ssh 从 client2 到 client1。有人对如何解决这个问题有任何想法吗?
我知道这是因为我在理解方面存在巨大差距,我不介意这个社区可以为我提供任何教育。
【问题讨论】:
【参考方案1】:嗯,我正在阅读我的帖子并意识到一些事情。在我的 ccd 文件中,我没有在路由 IP 地址之后放置子网掩码。我添加了子网掩码,现在我可以在客户端之间 ping 和 ssh。我的 ccd 文件现在看起来像这样:
ifconfig-push 10.8.0.z 255.255.255.0
push "route-gateway 10.8.0.1 255.255.255.0"
【讨论】:
以上是关于客户端到客户端的通信在 AWS Lightsail Debian Linux Open*** 服务器上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Angular 7 客户端的单个微服务(春季启动)的 AWS 选择