LAN経由で私のMacからアプリケーションを提供する


0

私は職場でLANを介して開発しているアプリケーションを提供しようとしています。私はApacheを使ってこれをやっていて、これはローカルでうまく機能していますが、ネットワーク上の他のクライアントからアクセスしようとするとhttpリクエストがタイムアウトになります。私が見ることができる/var/log/trac.logのように、要求は間違いなくMacに当たっています。

[ 94 14855][20 May 13:15:29][TR_FIREWALL] CFirewallWrapper::NotifyCallback: cRule = rule-3, srcIp=172.18.48.116, dstIp=172.18.48.240

私は衝突を避けるために任意のポート(23736)でサービスを提供していますが、問題はApacheにあるとは思わない。私がローカルに172.18.48.240:23736を参照している場合は問題ありません。外部クライアントが同じことを要求しても、Apacheのアクセス/エラーログには何も追加されません。

システム設定のファイアウォールが無効になっているので、/etc/pf.confに次のものを追加しました。

pass in proto tcp from any to any port 23736

実行する前に:

sudo pfctl -vnf /etc/pf.conf

そして再起動します。

現時点では、アイデアが足りなくなっています。


stackoverflow.comまたはnetworkengineering.stackexchange.comよりも優れているのでしょうか。
JMY1000

回答:


1

Apacheはあなたの選択したポートで待ち受けることができるのでパケットを転送するためのファイアウォールルールは必要ないはずです。 80番ポートのままにしても、何も矛盾しません。

あなたが見る必要があるのはあなたのhttpd.confファイルです。具体的には、 "Listen"ディレクティブ

# Listen: Allows you to bind Apache to specific IP addresses and/or
# Change this to Listen on specific IP addresses as shown below to 
#Listen 12.34.56.78:80
Listen 23736

ローカルでは動作していますが、他のクライアントでは動作していないので(私は同じサブネット上で行っていると仮定しています)、次のようにディレクティブを設定することができます。 localhost:23736

もしそうであれば、それはあなたが見ている症状を引き起こすでしょう。

あなたが持っているべきことは私が上に投稿したもの、またはそれを特定のIPに制限することです。

Listen 172.18.48.240:23736

変更したら、Apacheを再起動します。


いいえ、それはListenに設定されています:23736そして私がブラウザでローカルに働いていると言うとき私はlocalhostよりむしろ私のネットワークアドレスにナビゲートしていますすなわち172.18.48.240:23736
Cathal

アクセス/エラーログに何もないというあなたの声明は、Apacheがそれを見なかったことを意味します。あなたのファイアウォールはおそらくそれをブロックしているでしょう。ファイアウォールをオフにして、それが解決するかどうかを確認してください。
Allan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.