Как настроить постоянный TCP-прокси для смены пола?

У меня есть провайдер (A), который хочет отправлять нам данные через входящее TCP-соединение. К сожалению, служба-получатель (B) не может принимать входящие TCP-соединения. Также у него нет статического IP-адреса, еще одно требование.

Одним из способов решения этой проблемы может быть служба, которая соединяет входящий порт TCP A с другим портом TCP B, чтобы потребитель мог установить исходящее соединение с B.

Это не уникальная проблема [1] [2], и с помощью socat я могу сделать что-то очень близкое к тому, что я хочу:

socat -d -d -d -u TCP4-LISTEN: PORT-A, reuseaddr TCP4-LISTEN : PORT-B, reuseaddr

Однако здесь возникают следующие проблемы:

  • Если B отключается, он не может повторно подключиться. С TCP4-LISTEN: PORT-B, reuseaddr, fork он может подключаться, но не получает данные. эти правила брандмауэра по умолчанию не действуют:> $ gcloud compute --project "plop" firewall-rules > описать default-allow-http ...

    Я заметил странное поведение моего вычислительного движка gcloud " эти правила брандмауэра по умолчанию не действуют:

    > $ gcloud compute --project "plop" firewall-rules
    > describe default-allow-http allowed:
    > - IPProtocol: tcp   ports:
    >   - '80' creationTimestamp: '2018-07-26T05:17:16.627-07:00' description: '' direction: INGRESS kind: compute#firewall name:
    > default-allow-http network:
    > https://www.googleapis.com/compute/v1/projects/plop/global/networks/default
    > priority: 1000 selfLink:
    > https://www.googleapis.com/compute/v1/projects/plop/global/firewalls/default-allow-http
    > sourceRanges:
    > - 0.0.0.0/0 targetTags:
    > - http-server
    

    И я добавил следующее:

    > $ gcloud compute --project "plop" firewall-rules
    > describe web allowed:
    > - IPProtocol: tcp   ports:
    >   - '80' creationTimestamp: '2018-06-26T01:48:18.068-07:00' description: '' direction: INGRESS kind: compute#firewall name: web
    > network:
    > https://www.googleapis.com/compute/v1/projects/plop/global/networks/default
    > priority: 1000 selfLink:
    > https://www.googleapis.com/compute/v1/projects/plop/global/firewalls/web
    > sourceRanges:
    > - 0.0.0.0/0
    > 
    

    Хотя мне кажется, что эти два правила идентичны, есть идеи, почему?

0
задан 17 August 2018 в 15:02
1 ответ

Первое правило брандмауэра default-allow-http - это правило по умолчанию на платформе Google Cloud, которое вы найдете в любом проекте. Второй, как и первый, разрешает http ( Порт 80 ), с той лишь разницей, что только первый имеет Target . Правило брандмауэра применяется только к виртуальным машинам с соответствующий сетевой тег .

И снова второй межсетевой экран web будет применен к любым виртуальным машинам в сети по умолчанию, поскольку не указана цель.

2
ответ дан 4 December 2019 в 13:24

Теги

Похожие вопросы