2

Я хочу настроить сервер SVN на моем компьютере, чтобы он был доступен из любой точки мира.

Я думаю, что я правильно настроил хранилище, используя CollabSVN. Если я захожу в Repo-Browser с TortoiseSVN и указываю на svn://localhost:3690 , он показывает правильный репозиторий.

Проблема сейчас в том, что я за роутером. Мой локальный IP-адрес 192.168.1.45. Выполнение svn://192.168.1.45:3690 также работает. Мой глобальный IP, скажем, x.x.x.x . Простое выполнение svn://x.x.x.x:3690 не работает, что имеет смысл, так как мне нужно настроить переадресацию портов.

Я использую маршрутизатор Verizon. Используя их веб-интерфейс (на 192.168.1.1), я добавил следующее правило переадресации портов:

IP Address forward to: 192.168.1.45
Source Ports: Any
Dest Ports: 3690
Forward to: 3690
Protocol: TCP

Однако даже после применения этого правила переход к svn://x.x.x.x:3690 не работает. Для сбоя требуется несколько секунд, затем он говорит, что соединение не может быть установлено, потому что сервер, к которому он подключен, не отвечает должным образом через некоторое время. Интересно то, что случайный порт, такой как svn://x.x.x.x:36904 немедленно перестает работать , говоря, что целевой компьютер активно отказал в соединении. Таким образом, я полагаю, что правило переадресации сделало что-то, но не полностью то, что было необходимо.

Любые идеи о том, как заставить это работать? Модель маршрутизатора - MI424-WR а версия прошивки - 4.0.16.1.56.0.10.12.3 .

ОБНОВЛЕНИЕ: Я также попытался установить порт назначения на 45000 и все еще переадресовывать на 3690, на случай, если что-то не так с портами с меньшим номером, но безрезультатно. Я также попробовал порт 80 к порту 3690, все еще напрасно.

5 ответов5

1

Многие маршрутизаторы не поддерживают это, но если вы попробуете это за пределами вашей внутренней сети, это будет работать.

Попросите друга попробовать это svn:// xxxx:3690 из другого места в Интернете и посмотрите, работает ли он, или если у вас есть учетная запись оболочки, зайдите туда ssh и попробуйте выполнить команду svn ls svn:// xxxx:3690

Я не знаю название этой функции брандмауэра. Я знаю, что для того, чтобы заставить Linux делать это (именно это использует ваш wrt54gl), нужно добавить правило SNAT вместе с правилом DNAT.

Здесь есть ОЧЕНЬ хорошее объяснение: http://security.maruhn.com/iptables-tutorial/x9305.html

0

Попробуйте пересылку как по TCP, так и по UDP. Некоторые быстрые исследования показали, что SVN использует оба.

0

Возможно, на сервере есть брандмауэр, блокирующий запрос, или у svn есть конфигурация, которая заставляет его слушать только localhost.
Попробуйте получить к нему доступ с локального компьютера, используя частный адрес сервера.
Если это все еще не работает, это скорее всего брандмауэр.
Если вы используете Windows, попробуйте остановить брандмауэр и посмотреть, работает ли он.

0

многие роутеры не поддерживают подключение к себе с помощью вашего ext. IP-адрес, если вы хотите посмотреть, работает ли сервер извне, попробуйте http://canyouseeme.org/ просто введите свой порт, и он скажет вам, могут ли люди подключиться извне или нет

0

Я предлагаю вам сначала проверить, работает ли переадресация портов, создав правило пересылки для RDP (протокол удаленного рабочего стола) на некотором компьютере с Windows. (Переадресация 3389 формы TCP снаружи на 3389 и IP-адрес компьютера Windows.) После создания правила проверьте, можете ли вы подключиться к компьютеру под управлением Windows с помощью подключения к удаленному рабочему столу. (Или вы можете попробовать переслать SSH, это только для тестирования.)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .