Nu sunt un utilizator intens al sistemelor bazate pe Unix. Și am câteva probleme la deschiderea publicului portul unui server (80) și la redirecționarea către un container care rulează.
Deci, practic, am un container care rulează pe un server Ubuntu care rulează (IP 167.86.106.109), IP-ul containerului este 127.0.200.1 (și portul 80 este deschis).
Alergare TELNET 127.0.200.1 80
pe 167.86.106.109 și pot face un GET care returnează 200. Din afară am un timeout
Am făcut următoarele, dar încă nu pot accesa 167.86.106.109 pe portul 80 din exterior (eroare timeout):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to 127.0.200.1:80
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A OUTPUT -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to 127.0.200.1:80
iptables-save > /etc/iptables.rules
ufw permite http
Evident, am făcut ceva greșit, dar ce?
Ieșire din docker ps
:
2f7617d72299 polk-auction-ui:latest "/docker-entrypoint.â¦" Acum 52 de minute Până la 52 de minute 127.0.200.1:80->80/tcp polk-auction-ui
Acesta este pe Ubuntu 20.04 (64 de biți). Containerul este un container Docker (v 20.10.14)
Mai multe informații despre configurația mea actuală:
Sistemul de operare (IP 167.86.106.109) rulează pe un VPS, containerul docker la care vreau să ajung din exterior rulează un nginx cu următoarea configurație:
utilizator nginx;
lucrător_procese 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
evenimente {
conexiuni_muncitor 1024;
}
http {
includ /etc/nginx/mime.types;
aplicație de tip_default/octet-stream;
log_format principal „$remote_addr - $remote_user [$time_local] „$request” '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log principal;
sendfile activat;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
#include /etc/nginx/conf.d
Rezultatul ufw status verbose
:
Stare: activ
Înregistrare: activată (scăzută)
Implicit: deny (incoming), allow (outgoing), deny (direcționat)
Profiluri noi: săriți
La Acțiune De la
-- ------ ----
22/tcp PERMITERE PENTRU Oriunde
80/tcp PERMITERE PENTRU Oriunde
30333 PERMITEȚI PENTRU Oriunde
22/tcp (v6) PERMISĂ ÎN Oriunde (v6)
80/tcp (v6) PERMITERE Oriunde (v6)
30333 (v6) PERMISĂ IN Oriunde (v6)
Ieșirea de iptables -L -v -n
: (Vin multe de la docker în sine)
INTRARE în lanț (politica DROP 37 pachete, 2168 octeți)
pkts bytes target prot opt in out source destination
32669 4524K f2b-sshd tcp
2374K 1737M ufw-before-logging-input all
2374K 1737M ufw-înainte de a introduce toate
274K 16M ufw-după-intrare toate
262K 16M ufw-după-înregistrare-intrare toate
262K 16M ufw-reject-input toate
262K 16M ufw-track-input toate
0 0 ACCEPT tcp
Lanț FORWARD (politica DROP 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
167M 118G DOCKER-UTILIZATOR toate
167M 118G DOCKER-ISOLATION-STAGE-1 toate
888K 166M ACCEPT pe toate
19186 1150K DOCKER toate
0 0 ACCEPT pe toate
19186 1150K ACCEPT pe toate
51M 59G ACCEPT pe toate
3433 971K DOCKER toate
39M 3429M ACCEPT pe toate
3397 969K ACCEPTĂ toate
42M 53G ACCEPT pe toate
3397 969K DOCKER toate
33M 2699M ACCEPT pe toate
3397 969K ACCEPT pe toate
37132 233M ACCEPT toate
0 0 DOCKER toate
13310 1453K ACCEPTĂ toate
0 0 ACCEPT toate
0 0 ufw-before-logging-forward all
0 0 ufw-before-forward all
0 0 ufw-după-înainte toate
0 0 ufw-după-logging-forward toate
0 0 ufw-reject-forward all
0 0 ufw-track-forward all
Ieșire în lanț (politica ACCEPT 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
1835K 83M ufw-înainte-înregistrare-ieșire toate
1835K 83M ufw-înainte de ieșire toate
2843 253K ufw-după-ieșire toate
2843 253K ufw-după-înregistrare-ieșire toate
2843 253K ufw-reject-output all
2843 253K ufw-track-output toate
Lanț DOCKER (4 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp
0 0 ACCEPT tcp
0 0 ACCEPT tcp
0 0 ACCEPT tcp
0 0 ACCEPT tcp
0 0 ACCEPT tcp
0 0 ACCEPT tcp
Lanț DOCKER-ISOLATION-STAGE-1 (1 referințe)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION-STAGE-2 toate
39M 3429M DOCKER-ISOLATION-STAGE-2 toate
33M 2699M DOCKER-ISOLATION-STAGE-2 toate
13310 1453K DOCKER-ISOLATION-STAGE-2 toate
167M 118G RETURN all
Lanț DOCKER-ISOLATION-STAGE-2 (4 referințe)
pkts bytes target prot opt in out source destination
0 0 DROP all
0 0 DROP all
0 0 DROP all
0 0 DROP all
73M 6129M RETURN all
Lanț DOCKER-USER (1 referințe)
pkts bytes target prot opt in out source destination
167M 118G RETURN all
Lanț f2b-sshd (1 referințe)
pkts bytes target prot opt in out source destination
28666 4185K RETURN all
Lanț ufw-after-forward (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-după-input (1 referințe)
pkts bytes target prot opt in out source destination
0 0 ufw-skip-to-policy-input udp
0 0 ufw-skip-to-policy-input udp
81 4104 ufw-skip-to-policy-input tcp
11583 599K ufw-skip-to-policy-input tcp
0 0 ufw-skip-to-policy-input udp
0 0 ufw-skip-to-policy-input udp
0 0 ufw-skip-to-policy-input all
Lanț ufw-după-logging-forward (1 referințe)
pkts bytes target prot opt in out source destination
0 0 LOG all
Lanț ufw-după-logging-input (1 referințe)
pkts bytes target prot opt in out source destination
12797 753K LOG toate
Lanț ufw-după-logging-output (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-după-ieșire (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-before-forward (1 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT toate
0 0 ACCEPT icmp
0 0 ACCEPT icmp
0 0 ACCEPT icmp
0 0 ACCEPT icmp
0 0 ufw-user-forward all
Lanț ufw-before-input (1 referințe)
pkts bytes target prot opt in out source destination
5083 453K ACCEPT toate
41195 5355K ACCEPT toate
4634 827K ufw-logging-deny all
4634 827K DROP all
0 0 ACCEPT icmp
0 0 ACCEPT icmp
0 0 ACCEPT icmp
4586 357K ACCEPT icmp
211K 74M ACCEPT udp
1823K 109M ufw-not-local all
0 0 ACCEPT udp
0 0 ACCEPT udp
1823K 109M ufw-user-input toate
Lanț ufw-before-logging-forward (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-before-logging-input (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-before-logging-output (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-before-output (1 referințe)
pkts bytes target prot opt in out source destination
5089 453K ACCEPT toate
1722K 74M ACCEPT pe toate
2488 227K ufw-user-output all
Lanț ufw-logging-allow (0 referințe)
pkts bytes target prot opt in out source destination
0 0 LOG all
Lanț ufw-logging-deny (2 referințe)
pkts bytes target prot opt in out source destination
3643 763K RETURN all
671 48807 LOG all
Lanț ufw-not-local (1 referințe)
pkts bytes target prot opt in out source destination
1823K 109M RETURN all
0 0 RETURN all
0 0 RETURN all
0 0 ufw-logging-deny all
0 0 DROP toate
Lanț ufw-reject-forward (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-reject-input (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-reject-output (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-skip-to-policy-forward (0 referințe)
pkts bytes target prot opt in out source destination
0 0 DROP toate
Lanț ufw-skip-to-policy-input (7 referințe)
pkts bytes target prot opt in out source destination
11664 603K DROP toate
Lanț ufw-skip-to-policy-output (0 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT pe toate
Lanț ufw-track-forward (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-track-input (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-track-output (1 referințe)
pkts bytes target prot opt in out source destination
346 43729 ACCEPT tcp
1599 153K ACCEPT udp
Lanț ufw-user-forward (1 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-user-input (1 referințe)
pkts bytes target prot opt in out source destination
2237 132K ACCEPT tcp
2240 114K ACCEPT tcp
1663K 100M ACCEPT tcp
0 0 ACCEPT udp
Lanț ufw-user-limit (0 referințe)
pkts bytes target prot opt in out source destination
0 0 LOG all
0 0 REJECT all
Lanț ufw-user-limit-accept (0 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT pe toate
Lanț ufw-user-logging-forward (0 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-user-logging-input (0 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-user-logging-output (0 referințe)
pkts bytes target prot opt in out source destination
Lanț ufw-user-output (1 referințe)
pkts bytes target prot opt in out source destination
EDITAȚI | ×:
Docker-compose folosit:
versiunea: "3.8"
retele:
buline:
extern: adevărat
kusama:
extern: adevărat
Servicii:
polk-auction-ui:
imagine: polk-auction-ui:latest
container_name: polk-auction-ui
porturi:
- „127.0.200.1:80:80”
retele:
- buline
- kusama
imaginea este construită astfel:
FROM nodul:14 ca build
WORKDIR /app
COPIEAZĂ pachetul.json yarn.lock ./
RUN instalarea firului
COPIE . ./
RUN yarn build:prod
DE LA nginx:stabil-alpin
COPIEAZĂ nginx.conf /etc/nginx/nginx.conf
COPIEAZĂ --from=build /app/dist /usr/share/nginx/html
EXPUNEREA 80
CMD ["nginx", "-g", "daemon off;"]