ターボとデモという2つのCentOS 7ボックスがあります。最初の1つ、ターボでデーモン/サービスを開始し、2番目のサービス、デモからサービスを呼び出したいと思います。ポート8081を監視するサービスを開始しました。別のデーモンがポート8080を使用しているため、次のポート8081を使用することを考えました。
どちらのボックスでも、ファイアウォールデーモンFirewallD
が実行されていません。
Iptablesにエントリを追加して、システムを再起動しました。これがファイルの内容です。
# Generated by iptables-save v1.4.21 on Tue Nov 10 13:00:36 2015
*filter
:INPUT ACCEPT [900:143014]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [781:136535]
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -m comment --comment "DataMover Service Port" -j ACCEPT
COMMIT
# Completed on Tue Nov 10 13:00:36 2015
ファイアウォール(無効)を使用してポートを開こうとしたときに期待される結果は次のとおりです。
[root@Turbo Downloads]# firewall-cmd --permanent --add-port=8081/tcp
FirewallD is not running
私が使用したcurlコマンドは次のとおりです。
[hts@jmr-server2 raid1]$ curl -H "Accept: application/xml" "http://192.168.20.88:8081/base/TestService/sayHello"
私はGoogle検索を行いましたが、ほとんどの結果はiptablesの編集またはファイアウォールのポートのオープンを示しています。
CentOSの一般的なポート番号を示す this site を調べました。
2つのポートについて次のように述べています。
8080 webcache World Wide Web (WWW) caching service
8081 tproxy Transparent Proxy
リクエストごとに、ここにiptables -L
の結果があります。
[root@Turbo Downloads]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
[root@Turbo Downloads]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:tproxy /* TestService Service Port */
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@Turbo Downloads]#
ここに質問があります:
[root@Turbo Downloads]# netstat -nap|grep 8081
tcp6 0 0 127.0.0.1:8081 :::* LISTEN 7272/Java
[root@Turbo Downloads]#
ローカルホストを使用してテストを行っていますが、次のステップに進んで別のマシンに移動したいと考えていました。これがlocalhostの結果です。
[root@Turbo Downloads]# curl -H "Accept: application/xml" "http://localhost:8081/base/TestService/getHello"
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
ターミナルウィンドウからサービスを開始しました。私はサービスを自動的にロードしているわけではありません。
あるサーバーから別のサーバーへのcurlアクセスは、ポート8080でのみ可能であり、別のポートを使用していませんか、それとも他の問題がありますか?
これが問題です。netstatの出力には、外部からアクセス可能なIPではなくlocalhostでリッスンしているサービスが表示されます。
127.0.0.1:8081
サービスを編集して(または「任意の」)IPをリッスンし、再起動します。