専門用語の使い方を間違えた場合は、あらかじめお詫び申し上げます。私はまだLinux /ネットワーキングの初心者です
私はこの問題を1週間以上理解しようとしてきましたが、他の人が尋ねた関連する質問はどれも私を助けてくれませんでした。最近、apache2で実行されるWebサーバーを構築して、自分のWebサイトをホストしました。SSH、FTP、VNCにも使用するつもりでした。私はGoDaddy、cokongwu.comでドメインを登録しました。サーバーに静的IP(192.168.0.105)がセットアップされており、ポート80、21、23、53、および443にも静的IPへのポートフォワーディングがセットアップされています。パブリックにアクセス可能なWebサーバーのセットアップ方法に関するガイドを読んで、最初は完全に機能していたので、これで十分だと思いましたが、もちろん、ネットワーク外のドメイン名を使用してWebサーバーにアクセスしようとするとわかりました。 、接続できませんでした。さらに検索したところ、GoDaddyのゾーンファイルのAレコードをパブリックIPに変更する必要があることがわかりました。それを行うと、ネットワークの内部ではルーターページに再接続できるようになり、ネットワークの外部では接続が単にタイムアウトするため、Webサーバーにまったく接続できなくなったことがわかりました。後で、パブリックIPを静的に設定できなかったため、サービス、具体的にはdyndnsを使用して、IPが変更されたときに常に更新できるようにする必要があることがわかりました。ソフトウェアアップデートセンターからdyndnsアップデーターをセットアップし、dyndnsアカウントcokongwu.comをセットアップします。パブリックIPを指すAレコードと、cokongwu.comを指すエイリアスwww.cokongwu.comを使用します。また、ホスト名cokongwu.dyndns.orgを設定します。これは、パブリックIPも指し、dyndnsネームサーバーをGodaddyのネームサーバーに追加しました。私がcokongwuのために持っているAレコード。
このすべての後、hostname.comにアクセスしようとすると、以前と同じ問題が発生します。アクセスすると、内部IPではなくパブリックIPがポイントされますが、ネットワーク内ではルーター設定ページに転送され、ネットワーク外ではタイムアウトになります。これを修正する方法がわからないので、どんなアイデアでも大歓迎です。それ(パブリックIP)を私の内部IPにリダイレクトするべきではありませんか?
これらの専門用語のいずれかを間違った方法で使用している場合は、もう一度申し訳ありませんが、私はまだこのすべてに非常に慣れていません。
私はこの投稿に関連する多くの質問を知っているので、同じことをします:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:5556 0.0.0.0:* LISTEN 3387/dyn_updater
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 2729/vino-server
tcp6 0 0 :::80 :::* LISTEN -
tcp6 0 0 :::21 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 ::1:631 :::* LISTEN -
tcp6 0 0 :::5800 :::* LISTEN 2729/vino-server
tcp6 0 0 :::5900 :::* LISTEN 2729/vino-server
udp 0 0 0.0.0.0:5353 0.0.0.0:* -
udp 0 0 127.0.1.1:53 0.0.0.0:* -
udp 0 0 0.0.0.0:39124 0.0.0.0:* -
udp 0 0 0.0.0.0:631 0.0.0.0:* -
udp6 0 0 :::5353 :::* -
udp6 0 0 :::53973 :::* -
ufw:
sudo ufw status
[sudo] password for fender:
Status: inactive
000-default.conf:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName cokongwu.com
ServerAlias www.cokongwu.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
私が理解していることから、あなたは次の問題を抱えています:
1- LAN内から(FQDN、「完全修飾ドメイン名」www.cokongwu.comを使用して)Webサーバーにアクセスできませんか?
2-外部からウェブサイトの機能を確認することができませんか?
1-FQDNを使用して内部からWebサーバーにアクセスします。
Webサーバーにアクセスしようとしている場所がわからないため、LAN内の別のクライアントからのものであると想定します。
ほとんどの場合、外部DNSサーバーを使用しているため、www.cokongwu.comをリクエストすると、公開されているIP番号、つまりインターネットルーターの外部が解決されます(以下を参照)。そのルータの文句を言わないのルートトラフィックが来ているので、外部IP番号に内側から内側に戻って、トラフィックはその時点で停止します。
仕事へのもののために内部ネットワーク、www.cokongwu.comウィルは、あなたのように解決する必要がある内部IP番号(192.168.0.105)。内部IP番号を使用してWebサーバーを参照することはできますが、SSLを使用する予定であるため、最終的にはFQDNを使用してWebサーバーにアクセスする必要があります。そうしないと、証明書エラーが発生します。
内部の名前解決を修正する「難しい方法」は、内部DNSサーバーをセットアップすることですが、上記はトラブルシューティングや小規模な展開で機能します。あなたはグーグルにとって見知らぬ人ではないようです、そしてあなたが内部DNSサーバーをセットアップしたいなら、インターネット上にそれへの多くのガイドがあります。
内部の名前解決によって内部IPアドレスが提供されると、Webサーバーを参照すると、外部からのクライアントであるかのように同じ応答が返されます。
2-Webサーバーへの外部アクセス。
www.cokongwu.comをで解決するとdig www.cokongwu.com +noall +answer
、次のような返信がありました。
www.cokongwu.com。0 CNAMEcokongwu.comで。
cokongwu.com。59 IN A 69.171.137.28
これは、wwwホストがAレコードであるcokongwu.comを指すcname(エイリアス)であることを示しています。69.171.137.28で逆引き参照を実行すると、次のようになりdig -x 69.171.137.28 +short
ます。
dsl-69-171-137-28.acanac.net
これは動的ホストのように見えます。dyndnsの更新が機能している場合は、それが現在のパブリックIPアドレスである必要があります。コマンドラインで次のコマンドを使用して、これを確認します。
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
(ここから恥ずかしそうに盗まれた)またはwww.whatismyip.comを閲覧する
これがあなたの現在のものであると仮定すると、www.cokongwu.comへの閲覧は外部から機能するはずです...
私はそれを試しましたが、うまくいきませんでした。これは、次のいずれかまたは組み合わせを意味する可能性があります。
A-dyndnsサービスがIPアドレスを更新していません
B-外部ルーターの転送が機能していません
C-Webサーバーが応答していません
を使用してクイックテストを実行telnet <ip number> <port number>
しても、上記のポート番号からの応答はありません。これにより、理由はAまたはBであると私は信じます。Bの場合は、正しくポートフォワードしなかったか、モデムと組み合わせてルーターを使用している場合は、適切にブリッジされていない可能性があります。モデムをルーターに接続して、すべてのポート転送要求を処理できるようにします。
さらにいくつかの考えは、
私はあなたが言及したことがわかりポート53をWebサーバに転送されたポートの一つとして。ポート53UDPは、着信DNS要求の標準です。Webサーバーマシンで実際にDNSサーバーを実行していない限り、このポートを安全に閉じることができます...とにかく目的を果たしません。
また、sshとftpの使用について言及していることに気付きましたが、ファイアウォールでポート21と23を開き、Webサーバーに転送しました。ポート23はtelnetポートで、ポート21はFTPポートです。これらのサービスはどちらも安全でないプロトコルであり、ユーザー名やパスワードを含め、すべてをクリアテキストで送信するため、どちらも使用しないことを強くお勧めします。
ファイアウォールでポート22を開いて転送することだけをお勧めします。ポート22は、telnetの代わりに暗号化されたsshによって使用されます。ポート22は、ファイル転送にsshサービスを使用するscpサービスでも使用されます。telnetとftpの代わりにsshとscpを使用すると、Webサーバーとの間のすべてのトラフィックが安全に保たれます。
さらなる推奨事項は、着信sshに別のポートを使用することです。できれば、ポート1522(単なる例)のように、1000を超えるポート番号を使用することをお勧めします。これは、着信sshサービスが外部ポートスキャンによって検出されるのを防ぐためです。着信ポートを22からより大きなポート番号(つまり1522)に変更するだけで、Webサーバーのポート22に転送されたままになります。次に、高いポート番号(1522)を使用して外部から、ポート22を使用して内部からsshサーバーにアクセスします。
これがあなたの役に立つことを願っています、そしてあなたがあなたの問題を解決することを願っています=)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加