Passei algum tempo pra fazer isso funcionar, mas finalmente consegui. Debugar (depurar) em um servidor remoto é bastante útil e economiza bastante tempo. No meu caso, tenho uma lib (jar) que é importada no projeto, e a única forma de debugar ela com o projeto rodando, foi utilizando o debug remoto (mesmo estando no mesmo servidor).

É bastante interessante utilizar um Tomcat que foi instalado separadamente, e não o que foi instalado com o NetBeans. No meu caso, não instalei do repositório (apt, yum etc.), mas baixei o pacote compactado no site e extraí na pasta /opt/tomcat6.

O procedimento foi testado no Linux Mint Debian Edition (LMDE), mas muito provavelmente funcionará em outras distribuições, especialmente Debian e Ubuntu. A versão do NetBeans é a 7.1.1 e o Tomcat 6.0.35.

Vá no Terminal e digite o seguinte comando

sudo java -jar -Xdebug -Djava.compiler=NONE -Xrunjp:transport=dt_socket,server=y,suspend=n,address=7001 -Duser.dir="/opt/tomcat6" -Djava.endorsed.dirs="/opt/tomcat6/common/endorsed" "/opt/tomcat6/bin/bootstrap.jar" start

Lembre-se de substituir pelos diretórios corretos para o seu caso.

Se a mensagem "INFO: Server startup in X ms" apareceu, quer dizer que até aí deu tudo certo.

Depois é só ir no NetBeans para anexar o depurador. Acesse o menu "Depurar" (em inglês deve ser "Debug") e depois "Anexar Depurador" (em inglês deve estar como "Attach Debugger").

Coloque a porta 7001 e o host deve ser a máquina onde está o tomcat (o IP ou o nome). E pronto. Agora é só abrir sua aplicação e colocar os pontos de interrupção onde você quizer!

Informação adicionada em 26/12/2012:

Graças à colaboração (através dos comentários) de Afonso, vou mostrar uma forma bem mais simples (e que resolverá seu problema caso não esteja conseguindo debugar)

Ao invés de chamar o tomcat através da linha abaixo:

sudo java -jar -Xdebug -Djava.compiler=NONE -Xrunjp:transport=dt_socket,server=y,suspend=n,address=7001 -Duser.dir="/opt/tomcat6" -Djava.endorsed.dirs="/opt/tomcat6/common/endorsed" "/opt/tomcat6/bin/bootstrap.jar" start

Simplesmente adicione ao catalina.sh, logo após os comentários (linhas que começam com #), a linha abaixo:

CATALINA_OPTS=”-Xdebug -Xrunjdwp:transport=dt_socket,address=7001,server=y,suspend=n”

E reinicie seu Tomcat. O resto dos passos você pode fazer da mesma forma, e assim você poderá depurar/debugar suas classes remotamente!

Fonte: http://ahm507.blogspot.com.br/2006/12/netbeans-remote-debugging.html