Замените AWORD или BWORD на CWORD в sed

Enrutamiento

En el host A, debe enrutar todo el tráfico de la red de destino al host B. Asumiré que esto es algo así como192.168.0.0/24

para Linux (en hostA):

ip r a 192.168.0.0/24 via 10.9.8.3 dev eth0

para Windows (en hostA):

route ADD 192.168.0.0 MASK 255.255.255.0 10.9.8.3

Reenvío

Después de que el enrutamiento esté en su lugar,todos los paquetes para la red 192.168.0.0/24se enviarán al host B.

Para permitir que los paquetes se reenvíen de wlp3s0a tun0en el host B, debe habilitar el reenvío de IP.

Para habilitar temporalmente el reenvío de IP para todas las interfaces:

sysctl net.ipv4.conf.all.forwarding=1

Para habilitar este cambio de forma permanente, agregue una nueva línea a/etc/sysctl.conf:

net.ipv4.conf.all.forwarding = 1

Además de la configuración de la interfaz, iptablespodría estar activo y necesitar permitir el reenvío de paquetes.

Para verificar si iptablesestá activo (al menos para la cadena FORWARD):

iptables -L FORWARD -nv

Si la cadena no tiene reglas y la política dice ACCEPT, está listo para continuar, si no, debe agregar reglas relevantes para permitir el reenvío de 192.168.0.0/24.

Permitir el reenvío de todos los paquetes a 192.168.0.0/24enwlp3s0:

iptables -I FORWARD -i wlp3s0 -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

el RELATED,ESTABLISHEDpermite automáticamente la devolución de paquetes.


NA

Ahora, después de configurar el reenvío, los paquetes se enviarán al túnel. Pero en la medida en que la red remota detrás de la VPN no conozca nuestra red local, lo cual suele ser el caso, necesitamos NATtodos los paquetes que provienen de nuestra red local e irán a la VPN a la dirección que obtuvimos de el servidor VPN -(que es la IP en eltun0).

Para hacer esto, debe crear una regla MASQUERADEen la tabla POSTROUTING:

iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE

Esto enviará todos los paquetes salientes en tun0a la IP de la interfaz `.

2
30.12.2018, 20:07
3 ответа

С

sed -r 's/([^0-9]*)([0-9]*)([^0-9]*)/\2/g'

вы можете оставить только число в середине. Это работает только с расширенными регулярными выражениями, поэтому вам нужна опция -rдля sed.

На самом деле достаточно использовать

sed -r 's/([^0-9]*)([0-9]*)(.*)/\2/g'

Здесь используется функция ссылки на части выражения с помощью \1, \2,... Затем вам нужно использовать круглые скобки (...)вокруг той части выражения, на которую вы хотите сослаться. В приведенном выше коде вторая часть ([0-9]*)будет соответствовать числу в середине, и вы можете сослаться на это как \2.

Редактировать:Как указал terdon, нам не нужно захватывать начальную часть, так как мы ее больше не используем. Так

sed -n -r 's/[^0-9]*([0-9]+).*/\1/p'

достаточно.

Подводя итог, приведенная выше команда сохраняет только первое число в вашей строке ввода.

1
27.01.2020, 22:02

Ваша попытка

sed s/rapido// | sed s/bonk.[abc](sweet|sour)potato.net//

был довольно близок, но вы допустили две ошибки. Во-первых, вы не заключали команду в кавычки, поэтому bashинтерпретирует специальные символы «(» и «|». (Тот факт, что вы получили сообщение об ошибке bash, должен был навести вас на это ).

Вторая ошибка более тонкая. Sedи grepиспользуют базовые регулярные выражения, в которых всего несколько символов(. *^ $ [ ])имеют особое значение. Если вы хотите использовать расширенные операторы регулярных выражений(| (){} ), перед ними нужно поставить обратную косую черту. Итак, вот как должна была выглядеть ваша команда:

sed < t 's/rapido//' | sed 's/bonk.[abc].\(sweet\|sour\)potato.net//'

и поскольку sedможет обрабатывать несколько команд за один запуск, вы можете упростить это до

sed < t 's/rapido//; s/bonk.[abc].\(sweet\|sour\)potato.net//'
0
27.01.2020, 22:02
sed -e '/\.\([abc]\.\)\{0,1\}\(sweet\|sour\)potato\.net$/s/[^0-9]//g'

Выберите строки для редактирования, а затем удалите из них нецифровые символы.

Чтобы он выглядел менее загроможденным, используйте параметр -rкоманды sed:

 sed -re '/[.]([abc][.])?(sweet|sour)potato\.net$/ s/[^0-9]//g' 
0
27.01.2020, 22:02

Теги

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