内网环境,linux服务器与windows服务器互通问题排查解决过程

文章讲述了在内网环境中,由于Linux服务器防火墙设置导致Windows服务器无法访问其应用端口。通过使用telnet检测连接性,发现端口未开放。然后通过在Linux服务器上检查并修改防火墙规则,允许7095端口通过,最终解决了访问问题。同时指出,Windows服务器开启防火墙时也需要设置相应规则以允许其他应用访问。

背景

  1. 在内网环境的linux服务器上部署了一个应用,这个应用监听了一个端口。

  1. 在内网环境的另一台windows服务器上,访问linux服务器上的应用访问不了。

问题分析与解决

  1. 在windows服务器上,使用命令 telnet 192.168.1.2 7095 ,发现不能连接。但是单独ping 192.168.1.2这个ip是通的。

  1. 检查linux服务器上是否设置了防火墙,使用如下命令:

查看防火墙列表:

firewall-cmd --list-all

果然设置了防火墙,随后将新部署的应用端口添加到防火墙列表中,使用如下命令:

#添加端口号

firewall-cmd --permanent --add-port=7095/tcp

#刷新

firewall-cmd --reload

3. 如此操作之后,在windows上能正常访问linux服务器上的应用程序。

扩展

在windows服务器上部署相应的应用,如果开启了防火墙,也要设置相应的出站与入站规则,以便其他应用能够访问。

<think> 首先,用户的问题是关于获取Elasticsearch 8.16.2版本在Linux服务器上的部署手册。系统指令要求我使用中文回答,结构清晰,帮助用户逐步解决问题。我还需要生成相关问题。 回顾之前的对话:用户提供了一个系统指令,然后给出了一个示例(关于快速排序),但这不是当前查询的一部分。用户当前的查询是基于引用的文本,但引用是关于Elasticsearch 8.17.0的集群搭建Kibana的启动脚本,用户提到引用仅供参考,并不是真正的需求。用户说:"我想获取ES(可能是Elasticsearch)在8.16.2版本于Linux服务器上的部署手册",并问"请问Elasticsearch 8.16.2版本在Linux服务器的部署手册"。 用户还提到:"上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题你的回答。" 但在这个对话中,上一次的问题就是这个查询本身,没有历史上下文。所以,我应该基于当前查询回答。 关键点: - 用户要Elasticsearch 8.16.2的部署手册。 - 引用中提到了8.17.0,但用户指定了8.16.2。 - 部署环境Linux服务器。 我的回答需要: 1. 结构清晰,逐步解决问题。 2. 使用中文。 3. 遵循数学表达式的格式(但这里可能不涉及数学)。 4. 生成相关问题。 5. 如果有引用,添加引用标识,但用户提供的引用可能不直接相关。 部署Elasticsearch的一般步骤: - 安装Java(Elasticsearch需要Java运行时)。 - 下载Elasticsearch包。 - 配置Elasticsearch。 - 启动服务。 - 验证安装。 由于用户指定了8.16.2版本,我需要基于官方文档回忆。我不能访问实时数据,但基于知识截止日期2024年7月,Elasticsearch的部署过程在不同版本之间类似,但可能有细微差别。 步骤大纲: 1. 系统准备:确保Linux系统满足要求(如Java安装)。 2. 下载安装Elasticsearch。 3. 配置Elasticsearch(如集群设置、内存设置)。 4. 设置系统服务(使用systemd或其他)。 5. 启动验证服务。 6. 安全设置(如TLS、用户认证)。 在引用中,提到了自动启动脚本,所以我应该包括如何创建systemd服务文件。 用户提供的引用[1]是关于8.17.0的,但脚本应该类似。我需要调整为8.16.2。 用户说"参考站内引用",但引用内容似乎是粘贴的文本:[^1]是关于ElasticsearchKibana的启动脚本。[^2]是关于MQKafka的,不直接相关。 在回答中,我应该: - 提供通用的部署步骤。 - 提到版本差异,但强调过程相似。 - 生成相关问题。 最后,添加相关问题。 回答结构: 1. 简要介绍。 2. 逐步部署指南。 3. 相关问题。 确保语言中文。 </think> ### Elasticsearch 8.16.2 在 Linux 服务器上的部署手册 Elasticsearch(简称 ES)是一个开源的分布式搜索分析引擎。部署 Elasticsearch 8.16.2 版本在 Linux 服务器上涉及几个关键步骤,包括系统准备、下载安装、配置、服务启动安全设置。整个过程基于官方文档并结合最佳实践,适用于 CentOS、Ubuntu 等主流 Linux 发行版。以下步骤结构清晰,便于逐步操作(确保以 root 或有 sudo 权限的用户执行)。 #### 1. **系统准备** - **检查系统要求**: - 操作系统:支持 CentOS 7+, Ubuntu 18.04 LTS+ 或兼容发行版。 - Java 环境:Elasticsearch 8.16.2 依赖 Java 17 或更高版本(推荐 OpenJDK)。如果未安装,运行: ```bash sudo apt update && sudo apt install openjdk-17-jdk -y # Ubuntu/Debian # 或 sudo yum install java-17-openjdk -y # CentOS/RHEL ``` 验证 Java 版本: ```bash java -version ``` - 资源要求:确保服务器有足够的 RAM(至少 4GB)磁盘空间(建议 50GB+)。 - **创建专用用户**(避免以 root 运行 Elasticsearch): ```bash sudo useradd -m esuser # 创建用户 "esuser" sudo passwd esuser # 设置密码 sudo usermod -aG sudo esuser # 授予 sudo 权限(可选) ``` #### 2. **下载安装 Elasticsearch** - 切换到专用用户: ```bash sudo su - esuser ``` - 下载 Elasticsearch 8.16.2 发行包: ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.16.2-linux-x86_64.tar.gz ``` - 解压并移动到安装目录: ```bash tar -xzf elasticsearch-8.16.2-linux-x86_64.tar.gz sudo mv elasticsearch-8.16.2 /usr/share/elasticsearch sudo chown -R esuser:esuser /usr/share/elasticsearch # 设置所有权 ``` #### 3. **配置 Elasticsearch** - 编辑主配置文件(使用文本编辑器如 nano): ```bash sudo nano /usr/share/elasticsearch/config/elasticsearch.yml ``` 关键配置项示例(根据需求调整): ```yaml cluster.name: my-cluster # 集群名称 node.name: node-1 # 节点名称 path.data: /var/lib/elasticsearch # 数据存储路径(需先创建并赋权) path.logs: /var/log/elasticsearch # 日志路径(需先创建并赋权) network.host: 0.0.0.0 # 绑定所有网络接口(生产环境建议设为内网 IP) http.port: 9200 # HTTP 端口 discovery.type: single-node # 单节点模式(用于测试;集群模式需设置 discovery.seed_hosts) xpack.security.enabled: true # 启用安全特性(默认开启) ``` - 创建数据目录日志目录: ```bash sudo mkdir -p /var/lib/elasticsearch /var/log/elasticsearch sudo chown -R esuser:esuser /var/lib/elasticsearch /var/log/elasticsearch ``` - **内存设置**:编辑 JVM 选项(避免 OOM 错误): ```bash sudo nano /usr/share/elasticsearch/config/jvm.options ``` 调整堆大小(基于服务器 RAM): ``` -Xms2g # 最小堆内存 -Xmx2g # 最大堆内存(建议不超过物理 RAM 的 50%) ``` #### 4. **设置系统服务(systemd)** - 创建 systemd 服务文件(类似引用[1]但适配版本): ```bash sudo nano /etc/systemd/system/elasticsearch.service ``` 添加以下内容(确保路径正确): ```ini [Unit] Description=Elasticsearch After=network.target [Service] Type=simple User=esuser Group=esuser ExecStart=/usr/share/elasticsearch/bin/elasticsearch # 启动路径 Restart=always LimitMEMLOCK=infinity LimitNOFILE=65536 # 提升文件描述符限制 Environment="ES_HOME=/usr/share/elasticsearch" Environment="ES_PATH_CONF=/usr/share/elasticsearch/config" [Install] WantedBy=multi-user.target ``` - 重载 systemd 并启用服务: ```bash sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service ``` #### 5. **启动验证服务** - 检查服务状态: ```bash sudo systemctl status elasticsearch.service ``` 输出应显示 "active (running)"。 - 验证 Elasticsearch 是否运行: ```bash curl -X GET http://localhost:9200 ``` 响应示例(包含版本信息安全提示): ```json { "name" : "node-1", "cluster_name" : "my-cluster", "version" : { "number" : "8.16.2", ... }, "tagline" : "You Know, for Search" } ``` - **重置密码**(初次运行需设置): ```bash sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic # 重置内置用户密码 ``` #### 6. **安全设置** - **TLS/SSL 配置**:Elasticsearch 8.x 默认启用 TLS。证书通常自动生成,位于 `config/certs/`。 - **用户认证**:使用内置工具创建用户(示例): ```bash sudo /usr/share/elasticsearch/bin/elasticsearch-users useradd myuser -p mypassword -r superuser ``` #### 注意事项 - **版本差异**:Elasticsearch 8.16.2 8.17.0 类似,但部分安全特性可能微调[^1]。推荐查阅 [官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/8.16/index.html) 获取细节。 - **集群部署**:如果部署多节点集群,需在 `elasticsearch.yml` 中设置 `discovery.seed_hosts` 并确保节点间网络互通。 - **性能优化**:在生产环境中,调整 JVM 设置、禁用交换内存(`sudo sysctl -w vm.swappiness=1`)配置内核参数。 - **错误排查**:检查日志文件 `/var/log/elasticsearch/my-cluster.log`。 以上步骤基于 Elasticsearch 标准部署流程。如有问题,请提供错误日志以便进一步诊断[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值