我无法从家里的本地机器连接到公司网络内受 SearchGuard 保护的 ElasticSearch 实例。我使用与为 phpMyAdmin 实例工作时相同的本地 SSH 转发。
我的 ~/.ssh/config 包含这些内容:
Host workstation-forward-phpmyadmin
LocalForward localhost:8080 $WORKSTATION:443
HostKeyAlias $GATEWAY
Hostname $GATEWAY
ExitOnForwardFailure yes
User oschluet
Host workstation-forward-elasticsearch
LocalForward localhost:9200 $WORKSTATION:9200
HostKeyAlias $GATEWAY
Hostname $GATEWAY
ExitOnForwardFailure yes
User oschluet
我screen
像这样在会话中进行这些操作:
ssh workstation-forward-elasticsearch
或者ssh workstation-forward-phpmyadmin
然后分离屏幕。
现在我可以通过浏览器访问 phpMyAdmin,https://localhost:8080
或者使用 telnet 直接与 Web 服务器通信。不幸的是,ElasticSearch 在这方面似乎存在问题。从公司网络内的另一台机器,我可以像这样访问 ElasticSearch:
oschluet@ravenwood:~$ curl -k https://$WORKSTATION:9200 --user $user:$pass
{
"name" : "redacted",
"cluster_name" : "redacted",
"cluster_uuid" : "redacted",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
在本地使用相同的凭据不会产生任何结果:
[oschlueter@B5400 ~]$ curl -k https://localhost:9200 --user $user:$pass
# nothing happens
不使用任何凭证:
oschluet@ravenwood:~$ curl -k https://$WORKSTATION:9200
Unauthorized
[oschlueter@B5400 ~]$ curl -k https://localhost:9200
# again nothing
然而 telnet 打开了一个连接:
[oschlueter@B5400 ~]$ telnet localhost 9200
Trying ::1...
Connected to localhost.
Escape character is '^]'.
我尝试让 ElasticSearch 监听 IP 地址、主机名,0.0.0.0
所有这些都允许我从网络内的其他机器进行连接,但是无法从我的本地机器建立连接。我是 $WORKSTATION 和本地机器的管理员。有人能帮我找到问题吗?