伊朗的某个人无法连接到我在美国服务器上托管的服务。似乎大多数其他服务都可以正常工作,但我的却不行。
我让他们 ping 服务器并且请求超时。
我还通过 VPN 进入了阿联酋和南非,并且能够毫无问题地建立连接。
有谁知道为什么这可能不起作用?我正在积极与他们沟通,所以他们的互联网确实有效。像伊朗这样的某些国家有防火墙吗?
谢谢你。
伊朗的某个人无法连接到我在美国服务器上托管的服务。似乎大多数其他服务都可以正常工作,但我的却不行。
我让他们 ping 服务器并且请求超时。
我还通过 VPN 进入了阿联酋和南非,并且能够毫无问题地建立连接。
有谁知道为什么这可能不起作用?我正在积极与他们沟通,所以他们的互联网确实有效。像伊朗这样的某些国家有防火墙吗?
谢谢你。
我已经在单独的 AWS EC2 实例上成功设置了 MySQL 主从情况。从站正在运行并成功复制主站。
到目前为止,一切都很好。
现在我希望能够查询从属设备(用于分析等),但我找不到能够将查询从主设备发送到从设备的正确配置。
我得到的错误(取决于我的 AWS 安全配置文件设置)是“连接被拒绝”或“连接超时”
在从属服务器上,我有一个 EC2 安全组允许主 IP 块用于连接到端口 3306,并且我在主服务器的连接配置中使用了从属服务器的 IP 地址。
当我尝试从主服务器查询从服务器时,导致“连接被拒绝”错误。
在主服务器上,我运行“显示完整进程列表”并看到从属主机是 AWS EC2 主机名,而不是 IP,并且端口 44508 被添加到最后,所以我将主服务器上的连接信息更改为使用从属主机名称而不是 IP 地址,以及从站上的安全组设置以允许来自端口 44508 而不是 3306 上的主站的流量。
这导致了“连接超时”错误。
我尝试了从属安全组中的 IP/主机名/端口的组合,但只是得到了这两个错误之一,任意组合。
任何人都可以提供有关如何配置事物的提示,以便我可以从该主计算机上运行(只读)查询,并将结果返回给主计算机?TIA。
两个系统的设置相同,除了 master 也在运行 Codeigniter4,这是我设置连接配置的地方:
Ubuntu 20.04.3 LTS 和 MySQL 8.0.26-0
我最初在 stackoveflow 上发布了这个问题,但被告知它更适合这个网站。
我正在尝试从 LAN 外的另一台机器访问部署在一台机器上的 Jetty 服务器,但它不工作。我已经阅读了这个帖子并遵循了@Joakim Erdfelt提供的建议,但是它没有用。我的代码如下:
Server server = new Server();
// HTTP connector
ServerConnector serverConnector = new ServerConnector(server, 1, 1);
serverConnector.setHost("0.0.0.0"); <-
serverConnector.setPort(8080);
serverConnector.setIdleTimeout(30000);
// Set the connector
server.addConnector(serverConnector);
我尝试使用以下代码从另一台远程服务器访问服务器:
String postUrl = "http://" + myIP + ":8080"; // myIP is set to the public IP address of Jetty Server
System.out.println("Post URL: " + postUrl);
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(120 * 1000).build();
try (CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();) {
HttpPost httpPostRequest = new HttpPost(postUrl);
...
但是,这会引发以下异常:
HttpPostConnectException: Connect to 123.4.56.78:8080.. failed: Connection refused: connect
是什么导致了这个错误?我在提示时允许访问防火墙,所以我认为这不是防火墙问题。该端口8080
也未用于任何其他进程。我尝试了多个端口无济于事。
谢谢
我在 docker hub / mongodb 上制作了这个 docker-compose 文件,然后我使用docker-compose up -d
非常标准的命令来启动容器。
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
bf4a595a508d mongo-express "tini -- /docker-ent…" About an hour ago Up About an hour 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp intake-app_mongo-express_1
b5fcc2d2386d mongo "docker-entrypoint.s…" About an hour ago Up About an hour 27017/tcp intake-app_mongo_1
现在我正在尝试将我的后端连接到它。
使用 postresql 它会像
postgresql://root:example@localhost:8081/db_name
mongo 会怎样?
PS:我可以在我的网络浏览器中通过 http://localhost:8081 连接到数据库,但我无法从命令行使用mongo
.
之后的配置:
iptables -P INPUT DROP
iprables -A INPUT -j DROP
iptables -P OUTPUT ACCEPT
iptables -A OUTPUT -j ACCEPT
现在无法正常访问互联网或通过VPN。怎么了?
为什么创建一个新的 TCP 连接被认为是昂贵的?是我想到另一个问题时想到的问题。
保持 TCP 连接处于活动状态以及通过连接池缓存连接到底意味着什么?(我确实理解线程池的概念,但与连接池的“连接”部分混淆)。
TCP 流量在到达目的地之前不应该流经许多基于 Internet 的 IP(计算机和路由器等)吗?如果是这样,那么连接甚至意味着什么?它是否指为 TCP 流量建立一次的路径,并且重新使用连接意味着一次又一次地使用相同的路径,直到该路径中的某些 IP 不再可用?
我有一个后端服务器 (Apache),它离我们的大多数用户都太远了,所以我们的想法是实现一个更接近的反向代理来充当缓存。
乍一看,它就像一种魅力。缓存的静态文件的服务速度非常快,但对于其他任何事情,反向代理 (NGINX) 都需要连接到后端服务器,这需要一些时间来进行 SSL 握手,从而使这些第一个请求变慢。
我正在搜索这方面的信息,但我找不到保持这种联系的方法。有没有办法做到这一点?
我什至尝试了解有关 websocket 的更多信息,但我能找到的所有实现都是为了回答特定请求,而不是保持连接两个 Web 服务器(反向代理的 NGINX 和后端的 Apache)的连接。
你们中是否有人对学习/使用/搜索什么有任何想法或提示以实现这一目标?
非常感谢您!
我在 varnish default.vcl 中看到了 .max_connections 参数,并通过在 web 中搜索,找到了 .max_connections 下面的 文章:您授权 Varnish 打开到此后端的连接数。请记住,连接是池化和重用的,因此您的后端应该有更轻松的生活,但有时,您需要更多地保护它。不过要小心,因为这是一个硬限制,如果达到,Varnish 将不会使用这个后端,即使这意味着向用户返回错误。
现在,我想知道最大连接是否意味着请求/秒或并发用户或其他任何东西。我将如何为后端 nginx 服务器计算它?
在一台服务器上,我们遇到了各种 UDP 连接都失败的问题。相同的应用程序和测试可以在具有相同操作系统和类似设置的其他服务器上运行。
nc -vz -u 83.61.**.** 7092
Connection to 83.61.**.** 7092 port [udp/*] succeeded!
使用 Go 应用程序:
read udp 5.9.**.**:49696->83.61.**.**:7092: i/o timeout
我们使用 php 和 golang 应用程序对其进行了测试。
我们也尝试过使用完全禁用的防火墙。
如果 netcat 成功但其他应用程序不能成功,可能是什么原因。
如果用户访问http://example.com:443之类的网站,我如何给用户一个连接重置错误,而不是给出以下错误:
错误的请求
您的浏览器发送了此服务器无法理解的请求。
原因:您对启用 SSL 的服务器端口使用纯 HTTP。
请改用 HTTPS 方案访问此 URL。
上面的错误是 Apache 提供给我不想要的用户的。相反,我只想停止连接,而不是给出文本响应。这可能吗,应该是,因为很多网站都有这个功能。提前致谢。(此外,我自己无法尝试任何事情,因为我不知道它是如何工作的,所以如果可以的话,我可以自己实现它)。
在某种程度上类似,但无论如何都没有回答我的问题: Serving port 443 over http 创建 400 Bad Request Error 而不是 redirect,但提到:“如果您尝试与其他服务器进行此类请求,那么他们将关闭连接而不会出现任何错误完全挂起或者只是挂起,因为他们仍然希望从客户端获得 TLS 握手” ,所以我的问题是如果用户访问http://example.com:443如何关闭连接。
请注意,当用户访问 http:// 而不是 https:// 上的端口 443 时,我想关闭连接。我不希望 apache 显示错误请求消息。我想关闭连接,因为有人提到无法将 http:// 上的 443 重定向到 https://。如果有任何方法可以做到这一点,请告诉我(除了 HSTS,我不愿意信任)。我认为这将使用防火墙来完成(不确定)。我也见过 cPanel 这样做,但我没有将 cPanel 用于其他目的,所以请不要要求我这样做。
除非您修改 Apache 的源代码,否则无法更改 400 bad request 页面,因此无法从 http 重定向到 https。我不认为我被允许修改 Apache 的源代码。
我还看到运行curl http://www.google.com:443
说curl: (52) Empty reply from server
,所以发送一个空回复应该足以停止连接对吧?我不知道。但也许是的,如果是这样,怎么办?(如果有不同的连接断开方法,请不要回答这个问题)。
需要明确的是:我要求的是sudo ufw deny out 443 http
(可能无效)之类的东西。